Terminal

終端中的控制和向上/向下鍵供 emacs 使用

  • October 9, 2014

是否可以在終端視窗中執行 emacs 時使用C-upC-down從帶有-nw標誌的命令行啟動 emacs 時)?當我按下這些鍵C-upC-down讓這些鍵在 emacs 中工作時,我的終端應該發送什麼?

我在 Mac OSX 上,使用 iterm2 ssh 到遠端 linux 伺服器,我從 bash 啟動 emacs 會話。

終端知道字元,而不是鍵,因此沒有相應字元的鍵需要被轉換為轉義序列並返回。

您可以選擇任何不會導致任何衝突並且 iterm2 和 Emacs 同意的控制序列。不幸的是,這些控制序列不是標準化的。\e[1;5A並且\e[1;5B是流行的選擇(其中\e是轉義字元)。

Emacs 有一個相當複雜的系統來將轉義序列轉換為鍵。請參閱手冊中的翻譯鍵映射input-decode-map除非您有沒有它的舊版本的 Emacs,否則請使用它。

(define-key input-decode-map "\e[1;5A" [C-up])
(define-key input-decode-map "\e[1;5B" [C-down])

在 iterm2 中,在您的配置文件的“鍵”選項卡中設置相應的鍵序列。請參閱如何讓 control+left 箭頭在 iTerm2 中返回一個單詞?插圖指南。

另請參閱終端下的 Emacs + paredit (Terminal.app, iTerm, iTerm2)

引用自:https://unix.stackexchange.com/questions/47312