tmux

2013-03-16 12 views
8

चलाते समय तीर कुंजी मैपिंग इन महत्वपूर्ण मैपिंग tmux में काम करना बंद कर दें। मेरी .vimrc में, मेरे पास है:tmux

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 

जब मैं :map चलाने के लिए, मैं देख रहा हूँ:

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

फिर भी जब मैं नियंत्रण और एक ही समय में एक तीर कुंजी हिट है, यह के रूप में अगर कोई की बाइंडिंग था बर्ताव करता है सेट।

+2

यह संभव है कि आपका ओएस या टर्मिनल उन महत्वपूर्ण अनुक्रमों को रोक रहा हो। मेरा विम उन्हें अपने वर्तमान कीटीटीई/टीएमएक्स सेटअप के साथ प्राप्त नहीं कर रहा है, लेकिन मैंने इसे बहुत ज्यादा नहीं देखा है। –

+1

क्या ये मैपिंग tmux के बाहर काम करते हैं? Tmux में आपका '$ TERM' क्या है? – romainl

+0

हां, मैपिंग tmux के बाहर काम करते हैं। टीएमयूक्स में '$ TERM'' tmux' के जैसा ही है, जो 'xterm-256color' है। –

उत्तर

14

विम जानता है कि टर्म तरह टर्मिनल (xterm, या t_RV अनुक्रम के लिए एक विशेष प्रतिक्रिया के साथ शुरू अवधि द्वारा की पहचान है, अगर यह परिभाषित किया गया है) कुछ संशोधित चाबी के लिए विस्तारित दृश्यों का समर्थन है, लेकिन इसके लिए यह स्वीकार नही करता screen टीईआरएम (जिसे आप टीएमयूक्स के तहत उपयोग करना चाहिए)।

हालांकि इन दृश्यों के बारे में विम बता सकते हैं और अगर TMUX मौजूद है उन्हें सक्षम है, और अवधि (tmux के तहत पहली लाइनों सक्षम (बेहतर) माउस समर्थन है, जो आपको भी पसंद आए) screen साथ शुरू होता है:

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 

जैसा कि टिप्पणी इंगित करता है, आपको विंडो की xterm-keys विकल्प सक्षम करने की भी आवश्यकता है। आप इस तरह से अपने सभी खिड़कियों के लिए ऐसा कर सकते हैं (अपनी ~/.tmux.conf):

set-option -gw xterm-keys on 

(याद रखें कि ~/.tmux.conf में परिवर्तन स्वचालित रूप से लोड नहीं कर रहे हैं प्रभावी होने के लिए, आप एक tmux में मैन्युअल रूप से इस आदेश को चलाने के लिए (की आवश्यकता होगी। शेल कमांड, या एक उपसर्ग : शीघ्र) पर, या अपने विन्यास फाइल source ~/.tmux.conf साथ (फिर से लोड एक tmux शेल कमांड में, या एक उपसर्ग : शीघ्र), या पुनः आरंभ अपने सर्वर पर (निकास अपने सभी सत्रों और पुनः आरंभ tmux))।

संबंधित मुद्दे