在使用終端機來操作Linux作業系統的時候,經常會需要使用文字編輯器來瀏覽或是修改某個設定檔。有些終端機下的指令或工具(如visudo、git等),會直接使用Linux終端機「預設」的文字編輯器來開啟文字檔,然而這個「預設」的文字編輯器卻很可能不是我們習慣使用的。那麼要如何修改成我們習慣使用的文字編輯器呢?



Linux終端機預設的文字編輯器是由EDITOR這個環境變數來控制的,可以先使用以下指令來查看目前EDITOR環境變數的內容。

echo $EDITOR

linux-ternimal-editor

如果沒有特別去設定EDITOR環境變數的話,Linux發行版通常不會替使用者預設EDITOR環境變數的值。那些會自行去使用文字編輯器的指令或工具,如果發現環境中沒有設定EDITOR環境變數的話,就會去參考其它設定值,或是直接使用某個特定的文字編輯器。當然,也不是所有的指令或工具都會先去讀取EDITOR環境變數來選定文字編輯器,只不過這已經算是約定俗成的用法了,如果您也是開發者的話最好還是遵守一下。

為了不需重複在終端機中輸入指令來設定EDITOR環境變數,我們可以去修改家目錄底下的.bashrc檔案,將修改EDITOR環境變數的指令寫進去,一勞永逸。例如要把vim設定為Linux終端機預設的文字編輯器,可以在.bashrc檔案中加上:

export EDITOR=vim

linux-ternimal-editor

如果是基於Debian或是其衍生的Linux發行版的話,還有editor指令可以使用。editor指令算是Linux終端機下的各個文字編輯器的別名,預設通常會是用nano

當然,由於editor是指令,因此可以使用update-alternatives指令來調整其實際對應的文字編輯器的指令名稱。如下:

sudo update-alternatives --config editor

linux-ternimal-editor

linux-ternimal-editor

如果有在系統中安裝多個文字編輯器,在執行以上指令後,就會全部列出來,此時輸入數字選擇一個習慣使用的文字編輯器即可。

linux-ternimal-editor

如此一來,使用editor指令時,就會去執行我們所設定的文字編輯器啦!

linux-ternimal-editor

通常只有針對Debian或是其衍生的Linux發行版所編譯的程式會去使用到editor指令。就拿git commit來說,原先在沒有用任何設定值或是環境變數來指定文字編輯器的時候,它預設會去使用以程式定數(hardcode)寫死的vi指令。然而,Debian系的Linux發行版所提供的git執行檔在執行git commit指令時,卻會去使用editor指令哦!也就是說,在Debian系以外的Linux發行版設定editor指令,不是一個很有效的自訂Linux終端機預設文字編輯器的方式。