讓 EmEditor 成為 Git 的編輯器

2021-09-08 15:32:56 字數 2250 閱讀 6136

我們可以使用git config --global core.editor notepad.exe命令將記事本配置成 git 的編輯器。之後,修改一些文件,執行git commit -a命令,git 會在「工作目錄\.git\」新建乙個名為 commit_editmsg 的文字檔案,然後呼叫記事本開啟這個檔案,等待使用者輸入備註資訊,此時git commit -a命令處於阻塞狀態,直到我們在記事本裡輸入資訊,儲存並關閉記事本之後,git 再從 commit_editmsg 檔案裡讀取備註資訊,完成提交操作。

由於 git 是 linux 下的專案,即使移植到了 windows 下也仍然使用 lf 而不是 crlf 作為換行符,這會導致用記事本開啟的文字全都擠到了一行,所以我們希望使用像 emeditor 這樣的能夠相容 lf 換行符的文字編輯器。

但是,如果我們使用git config --global core.editor f:/工具箱/文件工具/emeditor/emeditor.exe將 emeditor 配置為 git 的編輯器,再執行git commit -a命令,會發現雖然成功通過 emeditor 開啟了 commit_editmsg 檔案,但是git commit -a命令並沒有阻塞,而是直接讀取了空白的 commit_editmsg 檔案(我們還沒來得及輸入資訊呢),並返回「aborting commit due to empty commit message.」錯誤資訊。

這是為什麼呢?我們可以猜測git commit -a的工作原理是:先建立編輯器的乙個新的程序,然後將 commit_editmsg 檔案傳遞給這個程序並等待程序結束,然後再讀取 commit_editmsg 檔案。然而,執行emeditor.exe commit_editmsg並不一定會建立新的程序——如果有正在執行著的 emeditor,將會直接使用這個程序開啟 commit_editmsg 檔案(新增乙個tab頁),這樣 git 自然也就不會阻塞了。為了驗證這個想法,可以做乙個小實驗:關閉所有執行著的 emeditor,包括工作列上的托盤圖示(emedtry.exe),然後執行git commit -a命令,這次就會處於阻塞狀態了。當然,我們不能每次都這麼幹。好在 emeditor 有乙個「/sp」命令列引數,意思是強制建立新的 emeditor 程序,有了它,我們差不多就能得償所願了。不過,實際操作一下就會發現,直接使用git config --global core.editor f:/工具箱/文件工具/emeditor/emeditor.exe命令進行配置並不好用,而是要像下面這樣操作。

將emeditor配置為git的編輯器(step by step)

我的 emeditor.exe 的路徑是「f:/工具箱/文件工具/emeditor/emeditor.exe」,以下配置都是基於這個路徑,如果你的路徑如果與我不同請自行智慧型糾錯。

step1新增乙個名為git_editor的系統環境變數,設定它的值為emeditor.exe //sp

step2修改path系統環境變數,追加f:\工具箱\文件工具\emeditor

step3開啟新的git命令列以便讓系統環境變數的修改生效。

測試執行git commit -a命令,會發現經由新的 emeditor 程序開啟 commit_editmsg 檔案,git commit -a命令處於阻塞狀態,在 emeditor 中輸入一些文字,儲存檔案並關閉 emeditor,git commit -a命令繼續執行並成功提交。

為什麼不能直接配置core.editor全域性變數?為什麼不能直接把git_editor引數設為f:/工具箱/文件工具/emeditor/emeditor.exe //sp?因為這麼做全都不好用。不是我喜歡彎彎繞,而是 git 太**。

讓Emeditor支援markdown編輯部落格

用慣了emeditor,最近又開始學習用markdown寫部落格,怎麼讓emeditor支援markdown呢?參見 中藥鋪子 胖大海說胡話 選擇 工具 選單下的 選擇配置 在列表的底部,單擊 定義配置 點選 新建 按鈕,選擇使用 預設配置 然後單擊 確定 輸入乙個描述性的名稱,並單擊enter鍵。...

讓VMWare Workstation成為服務

讓vmware workstation實現服務自啟動的做法.讓vmware workstation成為服務 讓vmware成為服務,目的是讓虛擬機器和宿主主機同時啟動,以便宿主主機可以登入到域控制器 1.所需的工具 instsrv.exe和srvany.exe 這兩個工具在windows 2003 ...

讓自己成為「太陽」

這或許就是自己邁出的第一步,首先借用,從自己的內心開始變化 為什麼陽光總是照耀在別人身上。我總是被遺忘的角落,這個世界太不公。你有這樣的想法和感受嗎?其實那是因為你自己躲開了陽光,自己躲在了角落。我以前也是這樣,在痛苦中掙扎 那一天,突然夢醒 為什麼不做乙個追逐太陽的人?每天沐浴陽光.愜意,享受,這...