Terminal
如何找出 Ctrl+向上箭頭和 TERM=screen 向下箭頭的鍵碼?
我經常使用 tmux,並且我已經設法調整我的 OS X 終端以發送正確的 Ctrl+左右箭頭(
\033b
和\033f
)鍵碼。我在網上找到了這些資訊。但是,我還需要 Ctrl+up 和 down 才能正常工作。如何找出 tmux 期望的關鍵程式碼?該變數在 tmux 內部TERM
設置為while。screen
我可以在我的 Linux 機器上查詢終端數據庫的程式碼嗎?目前,我的 OS X 終端只是發送左右箭頭,沒有 Ctrl 修飾符。
我剛剛發現 tmux 似乎需要 xterm 鍵碼,而不是在意
screen
終端類型。因此,我只是在 xterm 中敲擊鍵,使用 Ctrl-V 作為前綴並得到以下程式碼:
- 左鍵:
^[[D
- 右鍵:
^[[C
- 向上鍵:
^[[A
- 向下鍵:
^[[B
- C-左:
^[[1;5D
- C-右:
^[[1;5C
- 杯子:
^[[1;5A
- C-向下:
^[[1;5B
我現在可以配置 OS X 終端來發送這些關鍵程式碼,並且 tmux 工作正常。但是,在 tmux 中執行的其他應用程序會崩潰,因為它們不希望獲得 xterm 密鑰程式碼。我在ArchWiki中找到了一種解決方法,它建議創建您自己的 terminfo 條目。我會試試的。
編輯: tmux FAQ 讓我繼續前進,我在我的 : 中添加了以下兩行
~/.tmux.conf
:set -g default-terminal "xterm-256color" setw -g xterm-keys on
現在我可以在 tmux、bash、emacs 和其他程序中使用 C 箭頭了。
另一個編輯:由於 tmux 不支持 bce(背景顏色擦除),我需要製作自己的 terminfo,稱為 xterm-256color-nobce:
infocmp xterm-256color | sed 's/bce, //' > xterm-256color-nobce sudo tic ./xterm-256color-nobce
並確保將其用作我的預設 TERM 值。