我做了什麼以及事情發生變化時:

我做了什麼以及事情發生變化時:

我開始學習 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。所以我嘗試改變我定義$EDITORand 的方式$VISUAL,例如使用完整路徑,例如我的alias emacs=...with the -nwflag 而不是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 中,我就可以使用vin 。但是,我less$EDITOR$VISUAL改變這些,這就是我的困境所在。這可能是一個微不足道的問題,但我將非常感謝任何建議或見解。

PS-在嘗試解決這個問題時,我遇到了這個問題emacsclient,我可以使用該命令,但我不明白為什麼我應該使用它而不是我的enw.

答案1

別名僅在目前 shell 會話中「活動」。less將無法透過$EDITORor呼叫別名$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'.

相關內容