Terminal

我可以讓我的 iTerm 組合鍵在 tmux 中工作嗎?

  • September 9, 2014

我在 iTerm 中定義了一些快捷鍵,並將它們用於 Vim 中的鍵映射。

例如,我映射Ctrl-Enter發送一個^[O2P轉義碼,然後我用它Ctrl-Enter在我的 Vim 中定義一個鍵映射:

在此處輸入圖像描述

set       <F13>=O2P
map       <F13> <C-CR>
inoremap <C-CR> <C-O>o

它適用於正常 iTerm 會話和螢幕會話,但不適用於 tmux 會話。如何解決此問題以與 tmux 一起使用?除了這個掛斷之外,我正在離開螢幕並真正享受 tmux。

我通過調整轉義碼以在我的.vimrc. 我仍然希望我能更好地理解這一切是如何工作的,以及為什麼 tmux 發送的序列與 tmux 之外發送的序列不同,但這讓一切正常:

if &term =~ "screen"
 set  <F13>=[1;2P
 set  <F14>=[1;2Q
 set  <F15>=[1;2R
 set  <F16>=[1;2S
 set  <F17>=[1;5P
 set  <F18>=[1;5Q
 set  <F19>=[1;5R
 set  <F20>=[1;5A
 set  <F21>=[1;5B
elseif &term =~ "xterm"
 set  <F13>=O2P
 set  <F14>=O2Q
 set  <F15>=O2R
 set  <F16>=O2S
 set  <F17>=O5P
 set  <F18>=O5Q
 set  <F19>=O5R
 set  <F20>=[1;5A
 set  <F21>=[1;5B
endif

" use some unused function key codes to
" make special key combos work in terminal
map  <F13> <C-CR>
map! <F13> <C-CR>
map  <F14> <S-CR>
map! <F14> <S-CR>

map  <F15> <C-Space>
map! <F15> <C-Space>
map  <F16> <S-Space>
map! <F16> <S-Space>

map  <F17> <C-BS>
map! <F17> <C-BS>

map  <F18> <M-Tab>
map! <F18> <M-Tab>
map  <F19> <M-S-Tab>
map! <F19> <M-S-Tab>

map  <F20> <C-Up>
map! <F20> <C-Up>
map  <F21> <C-Down>
map! <F21> <C-Down>

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