विजुअल मोड में कोड को बदलने के लिए कैसे ब्लॉक करें?


26

मेरे पास उन मदों की एक सूची है जहाँ मैं पहले दो पात्रों को बदलना चाहता हूँ:

a) item 1
b) item 2
c) item 3

इसे बनाने का सबसे तेज़ तरीका क्या है:

* item 1
* item 2
* item 3

मेरे पास विज़ुअल मोड के साथ एक दृष्टिकोण है (सीटीआर-वी, जेजेजे, लेकिन दो प्रतिस्थापन कमांड करने की आवश्यकता है। Iirc, यह प्रतिस्थापन 1 कमांड के साथ किया जा सकता है)


1
जैसे .,.+2s/^../*/(या दृश्य चयन में समकक्ष)? दो आदेशों की जगह क्यों? 2cदो पात्रों की जगह लेगा।
मुरु

दृश्य चयन में कभी-कभी केवल पहली पंक्ति बदल जाती है, फिर दोहराई जाती है। अन्य लाइनों के लिए चीजों को गड़बड़ कर देता है।
poseid

2
@ कोपिड के Ctrl-Cबजाय दबाने की आदत है Esc? यह अन्य चीजों के बीच, दृश्य-ब्लॉक चयन की प्रत्येक पंक्ति में लागू होने वाले परिवर्तनों को रोकता है।
tommcdo

यह भ्रम का मुख्य कारण हो सकता है! धन्यवाद!
9

जवाबों:


26

दृश्य-ब्लॉक चयन:

<C-v>
jjl
c*
<Esc>

:normal:

:,+2norm! cE*

प्रतिस्थापन:

:,+2s/^.\{2}/*

डॉट सूत्र:

cE*<Esc>
j.
j.

1
पागल दृष्टिकोण: textobj-word-column.vim का उपयोग करके आप कर सकते हैं ciC*<esc>और किया जा सकता है। नोट: यह प्लगइन एक "मैं क्या मतलब है" प्लगइन है इसलिए यह अप्रत्याशित स्थानों और तरीकों में विफल रहता है, लेकिन प्लगइन अभी भी इस तरह के कुछ आसान मामलों में उपयोगी है।
पीटर रिंकेर

दिलचस्प सामान्य और डॉट सूत्र!
पोसिड

3
ध्यान दें कि विज़ुअल-ब्लॉक समाधान के लिए, आपको केवल पहली पंक्ति पर टाइप किया गया टेक्स्ट दिखाई देगा। एक बार हिट करने के बाद <Esc>, यह शेष लाइनों में भर जाएगा।
tommcdo

एक तरह से याद है कि ग की जगह के लिए कोई सुझाव? जैसे कि ctrl + D (खुद का)
जॉर्डन मैके

2
@JordanMackie c"परिवर्तन" के लिए है।
रोमेनिल

17

यहाँ यह करने का अधिक कुशल तरीका है:

  1. पहले आइटम और प्रथम अक्षर ( 0) पर कर्सर रखने के बाद , 'ब्लॉकवाइज' विज़ुअल मोड Ctrl+ दर्ज vकरें और }(यदि आपकी सूची नई लाइन समाप्त हो गई है) के पहले कॉलम का चयन करें , अन्यथा तीर कुंजी (स्थानांतरित करने के लिए ) जैसे विभिन्न तरीकों का उपयोग करें चयन के आसपास), या पैटर्न खोज /c)जहां cआपका अंतिम तत्व है)।
  2. ( kऔर तीर कुंजियोंl का उपयोग करके ) अपनी सूची के अंतिम प्रतीक पर जाएं , इसलिए दो कॉलम चुने गए हैं जिन्हें आप बदलना चाहते हैं।
  3. चयनित टेक्स्ट को दबाकर बदलें cऔर अपने बुलेट सिंबल ( *) को टाइप करें और मार कर खत्म करें Esc

विशेष रूप से लंबी सूचियों में अधिक कुशलता से काम करता है।

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