Terminal

如何找出 Ctrl+向上箭頭和 TERM=screen 向下箭頭的鍵碼?

  • January 19, 2014

我經常使用 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 值。

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