2013-05-17 6 views
7

मैं vim में विंडो आकार बदलना चाहता हूं, जैसा कि मैं इसे tmux में करता हूं।विम: क्या मेरे पास बहु-कुंजी बाध्यकारी की अंतिम कुंजी कमांड दोहरा सकती है?

मेरी tmux बाइंडिंग के साथ

मैं <C-b>JJJ कर सकते हैं, जो के रूप vim के 15<C-w>+ चाबियों का एक ही नंबर और प्रभाव है, लेकिन बहुत कम सोच है, क्योंकि मैं तो बस ले जा सकते हैं (प्रपत्र bind -r J resize-pane -D 5, जहां -r दोहराने के लिए है की) अग्रिम में कई पंक्तियों/कोल्स का निर्णय लेने के बजाय, जब तक यह सही दिखता है तब तक विभाजित करें।

एक और उदाहरण: मैं <C-w>++++-- दबा सकता हूं, और इसे <C-w>+<C-w>+<C-w>+<C-w>+<C-w>-<C-w>- दबाकर एक ही क्रिया निष्पादित करना चाहता हूं। (हालांकि मैं शायद 1 के बजाय प्रति पंक्ति 5 लाइन/कोल्स करने के लिए इसे दोबारा बनाना चाहता हूं)।

क्या इस प्रकार का दोहराना/टाइमआउट मोड vim बाइंडिंग में संभव है?

उत्तर

6

एक मुश्किल से एक है यही कारण है कि, लेकिन मैं इस से निपटने में मेरी विधि साझा करेंगे, के रूप में मुझे लगता है कि यह <C-w> तरीकों की तुलना में और भी आसान है (जो मैं एक लंबे समय के लिए इस्तेमाल किया है, और कष्टप्रद पाया जाता है):

" simplify resizing splits 
if has('unix') 
    nnoremap ^[j <C-w>- 
    nnoremap ^[k <C-w>+ 
    nnoremap ^[h <C-w>< 
    nnoremap ^[l <C-w>> 
else 
    nnoremap <M-j> <C-w>- 
    nnoremap <M-k> <C-w>+ 
    nnoremap <M-h> <C-w>< 
    nnoremap <M-l> <C-w>> 
endif 

^[ पात्रों एक वास्तविक भागने द्वारा प्रतिस्थापित किया जाना चाहिए। इसे Ctrl+v दबाकर डालने मोड में बनाएं, फिर escape। लिनक्स पर बैश में meta+x का उपयोग करना आवश्यक था। अब दोनों ओएसई में मैं Alt और hjkl कुंजी को स्प्लिट का आकार बदलने के लिए रख सकता हूं, जिसमें Alt+h क्षैतिज रूप से विभाजित करने के लिए है, जो मैं अंदर हूं। वे भी गणना के साथ काम करते हैं।

+0

यह 'tmux' दोहराना बाइंडिंग के रूप में सामान्य नहीं है, लेकिन अभी भी इस उपयोग के मामले के लिए एक आदर्श समाधान है। धन्यवाद! –

0

शायद यह सिर्फ मामूली बात है, लेकिन आप इसे मैप कर सकते हैं:

nnoremap <f3> <C-w>- 
nnoremap <f4> <C-w>+ 
संबंधित मुद्दे