2013-03-16 11 views
8

Bu anahtar eşlemeleri, tmux'da çalışmayı durdurur. ne biz .vimrc, ben var:tmux çalıştırılırken ok tuşlarının eşleştirilmesi

nmap <Space> i 
map <C-Down> <C-w>j 
map <C-Up> <C-w>k 
map <C-Left> <C-w>h 
map <C-Right> <C-w>l 

Ben :map çalıştırdığınızda, görüyorum:

<C-Right>  <C-W>l 
    <C-Left>  <C-W>h 
    <C-Up>  <C-W>k 
    <C-Down>  <C-W>j 

Yine de kontrol ve aynı zamanda bir ok tuşuna vurduğunda, hiç keybinding sanki davranır ayarlayın.

+2

İşletim sisteminiz veya terminaliniz bu anahtar dizileri engelliyor olabilir. Vim'im onları mevcut KiTTY/tmux kurulumumla almıyor gibi görünüyor, ama ben çok fazla bakmadım. –

+1

Bu eşleştirmeler, tmux dışında çalışır mı? Tmux'da $ TERM'iniz nedir? – romainl

+0

Evet, eşlemeler tmux dışında çalışıyor. Tmux'da '$ TERM'' xtm-256color' olan 'tmux' ile aynıdır. –

cevap

14

um xterm benzeri terminalleri bilir (xterm veya t_RV dizisine belirli bir tepki ile başlayarak TERM tarafından tanımlanan tanımlandığı takdirde,), bazı tadil edilmiş şifreler için genişletilmiş dizileri destek, ancak bu kabul etmez screen TERM'leri (tmux altında kullanmanız gerekir).

Ancak sen bu diziler hakkında Vim anlatmak ve tmux varsa sağlayacak ve SÜRE (ayrıca gibi olabilir tmux altındaki ilk satırları etkinleştirmek (iyi) fare desteği) screen ile başlar yapabilirsiniz:

if &term =~ '^screen' && exists('$TMUX') 
    set mouse+=a 
    " tmux knows the extended mouse mode 
    set ttymouse=xterm2 
    " tmux will send xterm-style keys when xterm-keys is on 
    execute "set <xUp>=\e[1;*A" 
    execute "set <xDown>=\e[1;*B" 
    execute "set <xRight>=\e[1;*C" 
    execute "set <xLeft>=\e[1;*D" 
    execute "set <xHome>=\e[1;*H" 
    execute "set <xEnd>=\e[1;*F" 
    execute "set <Insert>=\e[2;*~" 
    execute "set <Delete>=\e[3;*~" 
    execute "set <PageUp>=\e[5;*~" 
    execute "set <PageDown>=\e[6;*~" 
    execute "set <xF1>=\e[1;*P" 
    execute "set <xF2>=\e[1;*Q" 
    execute "set <xF3>=\e[1;*R" 
    execute "set <xF4>=\e[1;*S" 
    execute "set <F5>=\e[15;*~" 
    execute "set <F6>=\e[17;*~" 
    execute "set <F7>=\e[18;*~" 
    execute "set <F8>=\e[19;*~" 
    execute "set <F9>=\e[20;*~" 
    execute "set <F10>=\e[21;*~" 
    execute "set <F11>=\e[23;*~" 
    execute "set <F12>=\e[24;*~" 
endif 

Yorumun gösterdiği gibi, pencerenin xterm-keys seçeneğinin etkinleştirilmiş olması gerekir. Böyle tüm pencereler için bunu yapabilirsiniz (içinde senin ~/.tmux.conf):

set-option -gw xterm-keys on 

(~/.tmux.conf değişiklikleri otomatik olarak yüklenmez unutmayın etkili olabilmesi için, bir tmux içinde (elle bu komutu çalıştırmak gerekir. shell komutu veya Prefix : istemi) veya yapılandırma dosyanızı source ~/.tmux.conf (tmux kabuk komutunda veya Prefix : isteminde) veya sunucunuzu yeniden başlatın (tüm oturumlarınızdan çıkın ve tmux'u yeniden başlatın)).

İlgili konular