डालने के बजाए हटाएं, मैं अक्सर कई ब्लॉक पर डालने के बाद दृश्य ब्लॉक का उपयोग करता हूं, उदाहरण के लिए बहुत सारे कोड पर टिप्पणी करते समय। यह एकाधिक पंक्तियों पर एक ही स्थिति में पाठ डालने के लिए बहुत अच्छा है, लेकिन मैं यह नहीं समझ सकता कि बाद में दृश्य ब्लॉक मोड, बैकस्पेस, डेल और डी का उपयोग करके इस पाठ को कैसे हटाया जाए, सभी काम नहीं करते हैं। मैं मैकवीम का उपयोग कर रहा हूँ।विम - विजुअल ब्लॉक:
उत्तर
आप एक्स लिए देख रहे हैं:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
तब दृश्य-ब्लॉक का चयन करें, x
:
root:/root:/bin/bash
daeaemon:/usr/sbin:/bin/sh
bin/bin:/bin/sh
sys/dev:/bin/sh
मैं अक्सर इस का उपयोग, ठीक उसी कारण के लिए - टिप्पणी और कोड के बड़े ब्लॉक को अपरिवर्तित करना।
यह सीधे सवाल का जवाब नहीं दे रहा है (सरनाल्ड पहले से ही ऐसा कर चुका है), लेकिन मैं सुझाव दूंगा कि (कोड) ब्लॉक कोड पर अधिक कुशल तरीके हैं। मेरे पास एक टिप्पणी टॉगल फ़ंक्शन है जो या तो "कॉमचर" से शुरू होता है या नहीं, इस पर निर्भर करता है कि वर्तमान लाइन पर टिप्पणी या असम्बद्धता है।
function! CommentToggle(comchar)
let firstchar = matchstr(getline("."),"[^ ]")
if firstchar == a:comchar
sil exe 'normal ^xx'
else
sil exe 'normal ^i' . a:comchar . ' '
endif
endfunction
तो, पर्ल फ़ाइलों के लिए आप मैप कर सकते हैं:
nnoremap <silent> <leader>c :call CommentToggle('#')<CR>
और दबाने \ग (संयुक्त राष्ट्र) कर्सर की स्थिति से तीन लाइनों टिप्पणी।
तुम भी एक दृश्य मोड मानचित्रण लिख सकते हैं: आप एक दृश्य क्षेत्र का चयन करें और प्रेस उन सब \ग (संयुक्त राष्ट्र) के लिए टिप्पणी करने के लिए अनुमति देता है
vnoremap <silent> <leader>c :call CommentToggle('#')<CR>
।
यह विशेष कार्य केवल एक-वर्ण टिप्पणियों ("#", "%", आदि) के लिए काम करता है, लेकिन यह लंबे तारों (जैसे "//") तक विस्तारित करने के लिए सरल है, और यहां तक कि अधिक जटिल प्रतिस्थापन , जैसे एचटीएमएल टिप्पणियां।
उम्मीद है कि इससे मदद मिलती है।
अच्छी टिप, धन्यवाद। –
मैं "बेहतर तरीकों" के लिए सहमत हूं हालांकि, यहां तक कि बेहतर तरीके भी हैं: टिप्पणियों के लिए समर्पित प्लगइन्स * टॉगलिंग * -> उन्नत कॉमेंटमेंट, एनईआरडी कॉमेंटर, टीकॉममेंट (मुझे आखिरी बार के बारे में निश्चित नहीं है; मैं पहले का उपयोग कर रहा हूं एक दशक के लिए) –
प्रिंस गौलाश का उत्तर अग्रणी टैब के साथ काम नहीं करता है।
मैंने इसे बदल दिया, पैटर्न में टैब वर्ण जोड़ दिया, हालांकि पंक्तियां टिप्पणी और असंतोष के बाद अपना इंडेंट खो देते हैं।
function! CommentToggle(comchar)
let firstchar = matchstr(getline("."), "[^ \t]")
if firstchar == a:comchar
sil exe 'normal ^2x'
else
sil exe 'normal ^i' . a:comchar . ' '
endif
endfunction
मैं और अधिक लाइन में प्रथम स्थान के लिए टिप्पणी चार जोड़ने की तरह, राजकुमार गुलाश के कार्य करने के लिए इस संशोधन काम कर देता है:
function! CommentToggle(comchar)
let firstchar = matchstr(getline("."), "[^ \t]")
if firstchar == a:comchar
sil exe 'normal ^2x'
else
sil exe 'normal gI' . a:comchar . ' '
endif
endfunction
आगे के उत्तरों के जवाबों का उत्तर देने के साथ सावधान रहें - एक बार जब कोई नोटिस करता है, तो वे आम तौर पर कुछ ही मिनटों में चले जाते हैं :) - लेकिन राजकुमार गौलाश में कम निर्देशित होने के बाद यह एक अच्छा जवाब है और अधिक बेक की समस्या को हल करने पर निर्देशित किया गया। :) – sarnold
- 1. विम प्रश्न: कोड के ब्लॉक को ब्लॉक करना
- 2. विम: रिवर्स विजुअल मोड परिप्रेक्ष्य
- 3. क्या मैं विम में विजुअल-ब्लॉक चयन पर कई क्रियाएं कर सकता हूं?
- 4. विम
- 5. विम
- 6. विम
- 7. विम
- 8. विम
- 9. विम
- 10. विम
- 11. विम
- 12. विजुअल स्टूडियो में सीएसएस/जावास्क्रिप्ट के लिए विम स्टाइल फोल्डिंग
- 13. विम
- 14. विम
- 15. विम मार्कडाउन हाइलाइटिंग (सूची आइटम और कोड ब्लॉक विवाद)
- 16. विम में एक संपूर्ण ब्लॉक को कैसे यंक करें?
- 17. विम ब्लॉक कर्सर को सम्मिलित करें मोड में
- 18. विम
- 19. विम
- 20. विम
- 21. विम
- 22. विम
- 23. विम
- 24. क्या विम
- 25. विजुअल चयन की प्रत्येक पंक्ति पर विम मैक्रो
- 26. Entab/Detab विम
- 27. विजुअल स्टूडियो 2008 की ब्लॉक टिप्पणियों की परेशान ऑटो-हैंडलिंग
- 28. बाहरी विम विंडो
- 29. विम
- 30. विम
thats महान धन्यवाद, वहाँ दृश्य ब्लॉक में रखने के लिए एक रास्ता है मोड और एकाधिक एक्स करते हैं? –
@beck: जहां तक मुझे पता है, आप दृश्य मोड में नहीं रह सकते हैं। हालांकि, आप एक संख्या के साथ 'x' से पहले हो सकते हैं; जैसे '3x' तीन वर्ण हटा देता है, जो हो सकता है कि आप क्या कर रहे हों। –
@beck: आप उसी ब्लॉक को फिर से हाइलाइट करने के लिए 'gv' कमांड का भी उपयोग कर सकते हैं। –