कुंजी दबाए रखते समय मैपिंग कैसे दोहराएं


11

मैं .vimrcआसानी से विभाजित खिड़कियों का आकार बदलने के लिए अपने कुछ सरल मैपिंग में है:

noremap <Leader><UP>    <C-w>+
noremap <Leader><DOWN>  <C-w>-

यही कारण है कि बहुत ठीक, लेकिन उदाहरण के लिए काम करता है, जब मैं 10 लाइनों मैं प्रेस और रिहाई के लिए है की विंडो का आकार बदलने के लिए चाहते Leader+ UP10 बार।

कुंजी दबाए जाने के दौरान मैं इस मैपिंग को कैसे दोहरा सकता हूं? जब मैं चाहता हूं कि मैं प्रेस करूं तो Leader+ UPमैपिंग एक बार लागू हो जाएगी फिर थोड़ी अवधि के बाद इसे एक बार फिर से लागू किया जाएगा और इसी तरह जब मैं चाबियां पकड़ूंगा।

नोट: मुझे पता है कि <C-w>+एक गिनती के साथ उपसर्ग करना संभव है और मैं इसे मैपिंग में हार्डकोड कर सकता हूं या केवल मैपिंग का उपयोग करने से पहले एक गिनती इनपुट कर सकता हूं लेकिन यह नहीं है कि मैं इसे कैसे करना चाहता हूं।

नोट 2: मुझे यह भी पता है कि विंडोज़ का आकार बदलने के लिए एक लोकप्रिय मैपिंग का उपयोग करना है +और -चाबियाँ जो कई बार दबाना आसान है, लेकिन मैं उन कुंजियों का उपयोग नहीं करना चाहता।

जवाबों:


14

आप प्रवेश करने का प्रयास कर सकते हैं ... विम सबमोड ! आपके मामले के लिए, कुछ इस तरह:

call submode#enter_with('grow/shrink', 'n', '', '<leader><up>', '<C-w>+')
call submode#enter_with('grow/shrink', 'n', '', '<leader><down>', '<C-w>-')
call submode#map('grow/shrink', 'n', '', '<down>', '<C-w>-')
call submode#map('grow/shrink', 'n', '', '<up>', '<C-w>+')

इसका मतलब है, आप सबमोड को दर्ज करते हैं Leader-Upया Leader-Down(जो विंडो को एक बार बढ़ाएगा / सिकोड़ देगा) और फिर - आपको केवल सबमोड से बाहर निकलने तक विंडो को दबाना Upया Downबढ़ाना होगा।

समयबाह्य समस्याओं के लिए भी मदद देखें, लेकिन, इसे निष्क्रिय करने के लिए:

"disable submode timeouts:
let g:submode_timeout = 0

... तुम, अनिश्चित काल के लिए कि submode में रहेंगे जब तक आप की तुलना में एक कुंजी अन्य प्रेस जिसका मतलब है कि Upया Down, या जब तक आप हिट Esc

और, अगला उपयोगी सुझाव जो मैं सुझाऊँगा:

" don't consume submode-leaving key
let g:submode_keep_leaving_key = 1

... जो आपको एक अलग कुंजी दबाने पर सीधे आपके अगले कमांड में जाने की अनुमति देता है। उदाहरण के लिए, दबाने :से सबमोड को छोड़ दिया जाएगा और कमांड लाइन को खोला जाएगा।


मैंने आपको हल करने की कोशिश की, लेकिन यह काम नहीं कर रहा है: जब मैंने <kbd> लीडर </ kbd> + <kbd> UP </ kbd> को हिट किया, तो मेरे पास संदेश है --submode: grow/shrink --और विंडो को एक पंक्ति द्वारा आकार दिया गया है, लेकिन कमांड नहीं है। टी दोहराया गया। मैंने इसे 4 कॉम्बिनाइंस के साथ g:submode_keep_leaving_keyऔर g:submode_timeout0 या 1 के साथ आज़माया । मुझे यकीन नहीं है कि मैंने कुछ गलत किया या नहीं। मैं आमतौर पर एक टर्मिनल में विम का उपयोग कर रहा हूं, लेकिन अभी मैं केवल खिड़कियों पर जीवीएम के साथ परीक्षण कर सकता हूं, लेकिन मुझे यकीन नहीं है कि यह कुछ बदल सकता है।
statox

2
आदेश ऑटो-दोहराया नहीं है, फिर भी आपको कई बार आवश्यकतानुसार खुद को मारना होगा Upया Down(लेकिन Leaderपहले दबाए बिना )
VanLaser

ओह, मैं कोड को अब बेहतर समझ रहा हूं! यह पूरी तरह से धन्यवाद काम करता है!
statox

2
बिल्कुल सही जवाब और अद्भुत प्लगइन! (नोट: आपको अपने ऊपर दिए गए कमांड को जोड़ने से पहले vim-submode प्लगइन इंस्टॉल करना होगा ~/.vimrc।)
weibeld

1

विजेता के साथ , हिट Ctrl- eऔर आकार बदलें!

आप नियमित hjkl कुंजियों का उपयोग करेंगे (और शायद तीर कुंजियाँ)।

आप इसे आकार बदलने या "गर्भपात" कर सकते हैं।

वहाँ एक चाल-मोड भी है जहाँ आप चारों ओर खिड़कियां स्वैप करते हैं, और एक फ़ोकस-मोड जहाँ आप उस विंडो को स्विच करते हैं जिसमें आप सक्रिय हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.