Terminal
Ctrl + 箭頭鍵在 tmux 中工作
當我通過 SSH 連接到我們的伺服器時,控制 + 箭頭序列對我來說工作正常:
Ctrl
+V
然後Ctrl
+up
、down
、right
、分別left
給出^[OA
、^[OB
、^[OC
和^[OD
。在 tmux 中,我得到^[[A
,^[[B
,^[[C
和^[[D
.我正在通過 PuTTY 連接到 Ubuntu,但是……
- 我有正確的終端集(
putty
因為ncurses-term
已安裝)。所有其他組合鍵都在主 shell 中工作。- 我正在使用正確的字元集(UTF-8)。
- 我肯定會得到一個 256 色的終端(我已經嘗試過多次呼叫
TERM=... tmux
)- 我已閱讀 tmux 常見問題解答說要使用此配置:
set -g terminal-overrides "xterm*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"
使我的配置像這樣:
set -g default-terminal "screen-256color" set -g terminal-overrides "screen*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@" set-window-option -g xterm-keys on
因為
screen
在其他地方被推薦(儘管我也在那裡嘗試putty
過。我發現唯一有效的方法是在
tput rmkx
內部執行tmux
,但我不知道這是否是正確的解決方案,它還有什麼其他影響,其他程序是否會更改此設置,甚至應該如何正確設置它.tmux.conf
以便我不必一直手動輸入。對於未來的讀者:
- 不要使用
xterm-keys
;set -g default-terminal "screen-256color"
應該總是screen
或screen-256color
因為 tmux 在內部使用螢幕終端類型;和set -g terminal-overrides "putty*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"
應始終在tmux$TERM
之外相等/全域匹配。預設情況下,PuTTYxterm
在Connection > Data > Terminal-type中使用,因此要麼在terminal-overrides
設置中使用它,要麼將 PuTTY 更改為 useputty-256color
。
這類似於*How to enable Control key combination for GNU screen on putty?* ,但涉及不同的方面。
在快速檢查中,問題似乎是這一行之間的衝突
set-window-option -g xterm-keys on
還有這個:
set -g terminal-overrides "screen*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"
刪除
set-window-option
使您的配置對我有用。
我現在根本不再使用
terminal-overrides
也不再使用 PuTTY。我的相關.tmux.conf
是:set -g default-terminal "tmux-256color"
我將KiTTY用於我的終端模擬器,並在可能的情況下編譯一個特定於 KiTTY 的 terminfo 文件,否則
putty-256color
用作終端類型。