एक ही कॉलम में पहले गैर-रिक्त पर जाएँ


5

विम में, मैं उसी कॉलम में गैर-रिक्त वर्ण वाली पहली पंक्ति में कर्सर को नीचे (या ऊपर) कैसे ले जा सकता हूं?

उदाहरण के लिए, निम्नलिखित पाठ में:

item1
    item2
    item3
item4
    item5
    item6

यदि कर्सर eअंदर है item1, तो कर्सर को eअंदर ले जाएं item4

अगर mअंदर है item3, तो mअंदर जाएँ item5

FYI करें, मैं स्वरूपित पाठ को नेविगेट करने के लिए एक त्वरित और कुशल तरीके की तलाश कर रहा हूं।

(पुनश्च वे स्थान हैं जो टैब नहीं हैं।)

जवाबों:


2

ऐसा करने के लिए आप निम्न मैपिंग का उपयोग कर सकते हैं। (कुछ ऐसे किनारे मामले हो सकते हैं जिनके बारे में मैंने नहीं सोचा था)

nnoremap <leader>d m':exec '/\%' . col(".") . 'c\S'<CR>``n
nnoremap <leader>u m':exec '?\%' . col(".") . 'c\S'<CR>``n

महत्वपूर्ण हिस्सा :exec '/\%' . col(".") . 'c'यह वर्तमान कॉलम से मेल खाता है। इससे सीधे लिया जाता है :h %c। फिर मैंने \Sनॉन व्हॉट्सएप से मैच जोड़ा । m'और ``वर्तमान स्थिति को स्टोर करने और निष्पादन विवरण के आसपास इसे पुनर्स्थापित करने के लिए उपयोग किया जाता है। यह आवश्यक है क्योंकि निष्पादन के समय हमें लाइन के प्रारंभ में जगह देता है जिससे अनिश्चित व्यवहार हो सकता है (कुछ मामलों में बहुत अधिक लाइनों को छोड़ना)। इसे निष्पादित करने के बाद मैं पहले मैच में जाता हूं n। ऊपर और नीचे के संस्करण के बीच एकमात्र अंतर यह है कि हम /नीचे और ?ऊपर किस दिशा में खोज करते हैं ।

आप के बजाय आभासी कॉलम के साथ ऐसा करना चाहता है तो (यानी टैब) की जगह \%cके साथ \%v


1
वह शानदार है; यह वही है जो मैं देख रहा था! मुझे लगता है कि मैं इन्हें <leader>jऔर <leader>kक्रमशः मैप करूंगा । केवल एक चीज जो मैं जोड़ूंगा, वह :nohहै हाइलाइट्स को साफ करना। मैं यह भी नोट करता हूं कि यह किसी भी पिछले खोज या हाइलाइट्स को रोक देगा जो कि हो सकता है, लेकिन यह अनिवार्य रूप से वही करता है जो मैं चाहता था। धन्यवाद !
लेक्वेर्विग

1
@Lqueryvg जब यह खोज पंजिका को बंद कर देता है तब भी आप स्तंभ का उपयोग कर सकते हैं nऔर Nऊपर और नीचे जा सकते हैं।
FDinoff

2

मेरा JumpToVerticalOccurrence प्लगइन प्रदान करता है ]|और [|मैपिंग जो कि बस प्रदान करता है, [count]वर्तमान खोज पैटर्न को क्लॉबरिंग किए बिना समर्थन और बिना।


इसके लिए धन्यवाद। मैं प्लगइन के साथ-साथ "वन-लाइनर" समाधान का पता लगाऊंगा।
लेक्वेर्विज

0

यदि आप एक परिभाषित इंडेंटेशन सिस्टम ("स्वरूपित पाठ" के अंतर्गत आता है) के साथ कोड या कॉन्फ़िगरेशन फ़ाइलों के लिए यह चाहते हैं, तो jeetsukumaran / vim-indentwise इंडेंटेड , पूर्ण या ब्लॉक-स्कोप आंदोलनों के लिए अच्छी तरह से काम करता है।

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