我開始學習 bash 和 emacs,並想將我的預設編輯器從 vi 更改為 emacs。在經歷了不同 stackexchange 社區的許多重大問題之後,我還沒有弄清楚,並且顯然v
在使用less
.現在,當我v
在讀取文件時按less
,而不是打開 vi (預設)或 emacs (我想要的),它什麼也不做;即,less
據我所知,它保留在 中,我無法編輯任何文字。幸運的是,我仍然可以退出使用q
,我沒有註意到任何其他情況。
我做了什麼以及事情發生變化時:
我正在使用 mac osX 提供的終端模擬器,但我確實下載了 XQuartz。我使用 homebrew cask 安裝了 emacs。
stackexchange 上的許多問題很好地解釋了可以在我的 .bash_profile 中設定的$EDITOR
和變數。$VISUAL
由於我的 macbook 已經安裝了舊版本的 emacs,因此我確保使用 homebrew 安裝的當前版本的 emacs。
由於我剛開始學習所有這些東西,我無法確定設置所有內容的最佳方法。這是我目前在 .bash_profile 中的方式:
# changing emacs from the default osX version to the version obtained from homebrew
alias emacs="/usr/local/Cellar/emacs/25.2/Emacs.app/Contents/MacOS/Emacs"
alias enw="emacs -nw"
# setting emacs as the editor in term instead of vi
EDITOR="enw";export EDITOR
VISUAL="enw";export VISUAL
將上述程式碼新增至我的 .bash_profile 後,沒有任何重大變更(據我所知)。我用來echo
驗證$EDITOR
和$VISUAL
變數是否已正確更改。
當我用來less
讀取文件時,我仍然可以輸入v
,但我的終端將使用 vi 來編輯文件,而不是所需的 emacs。所以我嘗試改變我定義$EDITOR
and 的方式$VISUAL
,例如使用完整路徑,例如我的alias emacs=...
with the -nw
flag 而不是enw
。我還嘗試刪除引號。據我所知,這一切都沒有帶來任何不同。
不幸的是,由於我才剛開始,我沒有任何具體的任務要做,我只是在擺弄基本的命令和文件,這就是我一直使用該less
命令的原因。目前我不熟悉$EDITOR
在終端機中使用變數的任何其他方式。所以我不確定我的問題是否僅與 相關,v
或者是否是$EDITOR
.
最終我看到了一些與此相關的問題,建議添加ALTERNATE_EDITOR="";export ALTERNATE_EDITOR
,所以我嘗試了一下,但沒有真正理解為什麼。與v
中的命令也沒有明顯的區別less
。
經過更多搜索後我發現這問題,這似乎最接近我原來的計劃(儘管我並沒有嘗試按照我的理解管道傳輸任何內容;不幸的是,我不明白“分頁”是什麼)。所以我改為$EDITOR="enw"
,$EDITOR="env TERM=xterm-256color enw"
這大致是v
在讀取帶有 .txt 檔案時停止做任何事情的時候less
。
在添加最後一個程式碼之前,我檢查了$TERM
正常情況,這已經xterm-256color
適合我了。現在我並不是說這就是我的v
命令混亂的原因,這只是v
在 . 中停止調用 vi 的時間軸less
。我將所有內容更改回我嘗試過的第一個程式碼,但v
仍然對我不起作用。
(抱歉,這太長了,只是想解釋一下這個過程,以防有幫助!)現在,如果我註釋掉我$EDITOR
對 .bash_profile 的添加內容,一切都會恢復正常,我想這很好。因此,只要我不使用and在我的 .bash_profile 中,我就可以使用v
in 。但是,我less
$EDITOR
$VISUAL
想改變這些,這就是我的困境所在。這可能是一個微不足道的問題,但我將非常感謝任何建議或見解。
PS-在嘗試解決這個問題時,我遇到了這個問題emacsclient
,我可以使用該命令,但我不明白為什麼我應該使用它而不是我的enw
.
答案1
別名僅在目前 shell 會話中「活動」。less
將無法透過$EDITOR
or呼叫別名$VISUAL
(並且除了 shell 本身之外也沒有其他進程可以呼叫別名)。
相反,將例如設定VISUAL
為
export VISUAL='/usr/local/Cellar/emacs/25.2/Emacs.app/Contents/MacOS/Emacs -nw'
或安裝emacs
在可透過您的 存取的標準位置$PATH
,可以自己編譯,或使用 HomeBrew、MacPorts 或 Fink 之類的東西,然後只需使用export VISUAL='emacs -nw'
.