2013-03-18 93 views
36

我想一個獲得CTRL +標籤 CTRL ++標籤結合到TMUX會話裏面工作(我也使用PuTTY)。綁定Ctrl + Tab鍵和Ctrl + Shift + Tab鍵在TMUX

我已經通過重新編譯膩子的痛苦竟然將派遣CTRL轉變正確。使用CTRL +v,而之後我能看到^[[27;5;9~^[[27;6;9~被分別送到了CTRL +標籤 CTRL ++標籤。有什麼辦法可以讓這些綁定到tmux內的next-window和previous-window?

編輯: 經過一番研究,我想我可能必須配置xterm以包含這些鍵碼。任何想法我會怎麼做呢?

編輯2: 所以我發現我可以檢索infocmp並重新編譯它。我加

kctab=\E[27;5;9~, kcstab=\E[27;6;9~,

到它的結束,但現在它給我一個錯誤。 「項不與列終端名稱開頭一個

+0

有關如何使用Ctrl-Tab支持重新編譯PuTTY的說明。 http://scnr.net/blog/index.php/archives/61 – 2015-03-23 17:06:50

+0

謝謝你的問題。 – CodyChan 2015-04-23 07:59:08

回答

35

最近的「未發行」的TMUX版本,一旦你有你的終端把他們(無需改變你的terminfo就自動識別那些xterm的樣式鍵序列條目)。下一個版本(1.8?)也應該有這種支持。隨着TMUX 適當的構建,所有你所要做的就是綁定鑰匙放在TMUX配置:

bind-key C-Tab next-window 
bind-key C-S-Tab previous-window 

您仍然需要輸入這些按鍵之前,你的前綴鍵。 (注意:~/.tmux.conf只能在服務器啓動時處理,如果你修改了它,你需要退出所有會話並重新啓動服務器,或者使用(例如)tmux source ~/.tmux.conf來讓你的現有服務器重新啓動,處理文件。)

另外,如果你想TMUX沿着這些(和其他)的xterm風格的按鍵順序傳遞到內部TMUX正在運行的程序,那麼你將需要啓用xterm-keys窗口選項。

set-option -gw xterm-keys on 

(如果你願意,你可以通過使用-w,而不是-gw做到這一點對每個窗口的基礎。)


如果你希望能夠使用這些鍵,而無需輸入前綴,那麼你可以使用「無前綴」綁定改爲:

bind-key -n C-Tab next-window 
bind-key -n C-S-Tab previous-window 

這將或多或少地「奉獻」了儘管如此,可以使用tmux。將這些密鑰輸入到tmux(例如,您必須使用tmux命令send-keys C-Tab - 正常情況下,必須啓用xterm-keys才能發送這些xterm樣式的密鑰序列)內的任何程序中輸入這些密鑰將很困難。


您的terminfo條目編輯的問題可能是因爲命名終端類型之後的每行都需要以Tab開頭。不以標籤開頭的行是新終端條目的開頭。從技術上講,NL TAB序列基本上是這種文件格式的續行;每個條目都是一條邏輯線。

另外,如果你正在重新定義terminfo項,請務必使用-xinfocmp抽動保存用戶自定義功能(其中有些是相當標準)。


即根據tmux Git repository at sf.net(位於可克隆的URL git://git.code.sf.net/p/tmux/tmux-code)中的近期代碼構建。

+0

tmux無法識別C-Tab和CS-Tab作爲有效的密鑰(說這是一個未知的密鑰)。並感謝提供的頭,我恢復了我的terminfo變化,因爲說實話,我真的不知道我是什麼正在做。 – dook 2013-03-19 05:17:50

+0

Oops,C-Tab(和C-S-Tab)在我的* tmux *版本中被識別,但該功能不是最新版本(1.7)的一部分。如果你構建了最新版本的尚未發佈的代碼(即從git://git.code.sf.net/p/tmux/tmux-code),那麼它將支持這些密鑰。對於困惑抱歉!我會更新答案文字來描述這種情況。 – 2013-03-19 06:29:33

+0

謝謝你克里斯!我會讓你知道,一旦我得到它重新編譯和安裝 – dook 2013-03-19 06:57:24