विम: विज़ुअल मोड में टेक्स्ट के ब्लॉक चुनने का तेज़ तरीका


190

मैं काफी समय से विम का उपयोग कर रहा हूं और मुझे पता है कि दृश्य मोड में पाठ के ब्लॉक का चयन करना SHIFT+ जितना आसान हैV और जब तक मैं पाठ के ब्लॉक के अंत तक नहीं पहुंच जाता, तब तक लाइन-बाय-लाइन पर तीर कुंजी को आगे बढ़ाता हूं। चयनित होना चाहते हैं।

मेरा प्रश्न है - क्या दृश्य मोड में एक तेज़ तरीका है उदाहरण के लिए टेक्स्ट का एक ब्लॉक चुनने के लिए SHIFT+ के Vबाद लाइन नंबर निर्दिष्ट करके जिसमें मैं चयन को रोकना चाहता हूं? ( :35उदाहरण के लिए, जहां 35 वह पंक्ति संख्या है, जिसका मैं चयन करना चाहता हूं - यह स्पष्ट रूप से काम नहीं करता है, इसलिए मेरा प्रश्न यह है कि कैसे पता लगाया जाए कि यह कुछ इसी तरह किया जा सकता है ...)


3
+1 अच्छा प्रश्न जैसा कि मैंने पाया है कि मैं अक्सर ऐसा कुछ करता हूँ। अगर शायद इस जगह का उपयोग कर का उपयोग शुरू नहीं कर रहा है मैं सोच रहा हूँ v%या v/patternया कुछ और?
user786653 19

9
वीआईपी का चयन करें आंतरिक पैराग्राफ का चयन करें आंतरिक वाक्य का चयन करें।
सर्जियोअराज़ो

27
V35Gनेत्रहीन लाइन 35, भी करने के लिए वर्तमान लाइन से चुन लिए जाएँगे V10jया V10kनेत्रहीन अगले या पिछले 10 लाइनों का चयन करेंगे
स्टीफ़न

1
@ स्टेफ़न, बस यही तो मैं ढूंढ रहा था। धन्यवाद!!
shriek

मैं चयन शॉर्टकट के लिए लाइन का उपयोग करें nnoremap <Space> V:। जब दृश्य लाइन मोड में चयन को परिभाषित करने के लिए माउस के साथ सिर्फ राइट-क्लिक करें (कम से कम लिनक्स पर ऐसा है)। वैसे भी, केवल कीबोर्ड के साथ की तुलना में अधिक प्रभावी।
मिखाइल वी

जवाबों:


212

दूसरों ने जो कहा है, इसके अलावा, आप पैटर्न खोजों का उपयोग करके अपने चयन का विस्तार भी कर सकते हैं।

उदाहरण के लिए, v/foo"फू" के अगले उदाहरण के लिए अपनी वर्तमान स्थिति से चयन करेंगे। यदि आप वास्तव में "फू" के अगले उदाहरण के लिए लाइन 35 पर विस्तार करना चाहते थे , उदाहरण के लिए, बस दबाएंn अगले उदाहरण के लिए चयन का विस्तार करने के लिए , और इसी तरह।

अपडेट करें

मैं अक्सर ऐसा नहीं करता, लेकिन मुझे पता है कि कुछ लोग दृश्य चयन करने के लिए बड़े पैमाने पर निशान का उपयोग करते हैं। उदाहरण के लिए, अगर मैं लाइन 5 पर हूँ और मैं लाइन से 35 का चयन करना चाहते हैं, मैं प्रेस सकता है maजगह निशान को aआन लाइन 5, तो :35लाइन 35. करने के लिए स्थानांतरित करने के लिए Shift+ vदृश्य मोड linewise दर्ज करने के लिए, और अंत में `aमार्क करने के लिए वापस चयन करने के लिए a


21
यदि आपको उस पैटर्न को शामिल करने की आवश्यकता है जिसका आप उपयोग कर सकते हैं v/foo/eeमिलान किया पैटर्न के "अंत" के लिए खड़ा है।
पीटर रिंकेर

6
और आप ऑफ़सेट के साथ उस पंक्ति से संशोधित कर सकते हैं: वी / foo / + 5 या वी / foo / -5 (मैं लेखक की तरह अलंकृत दृश्य मोड का उपयोग कर रहा हूं)।
भेशमार

यदि आप अपनी खोज से मेल खाते टेक्स्ट की श्रेणी का चयन करना चाहते हैं तो आप क्या करेंगे; अर्थात: अपना खोज शब्द खोजें और चुनें (पूरा शब्द)?
डैनियल पार्क

5
@DanielPark वर्तमान शब्द का चयन करने के लिए, का उपयोग करें v i w। यदि आप वर्तमान सन्निहित गैर-व्हाट्सएप का चयन करना चाहते हैं, तो v i Shift+ का उपयोग करें w। फर्क तब होगा जब कैरेट यहां होगा MyCla|ss.Method, पहला कॉम्बो चुनेगा MyClassऔर दूसरा पूरी चीज का चयन करेगा।
Jay

1
धन्यवाद। पाया गया कि उपयोग v i w sकरने से आप प्रभावी रूप से एक "बदलें" ऑपरेशन कर सकते हैं।
डैनियल पार्क

113
G                       Goto line [count], default last line, on the first
                        non-blank character linewise.  If 'startofline' not
                        set, keep the same column.
                        G is a one of jump-motions.

V35G आप क्या चाहते हैं प्राप्त करता है


89

विम एक भाषा है। विम को वास्तव में समझने के लिए, आपको भाषा को जानना होगा। कई आज्ञाएं क्रिया हैं, और विम में भी वस्तुएं और प्रस्ताव हैं।

V100G
V100gg

इसका मतलब है "लाइन 100 और सहित वर्तमान लाइन का चयन करें।"

टेक्स्ट ऑब्जेक्ट्स, जहां बहुत सारी शक्ति होती है। वे प्रस्ताव के साथ अधिक वस्तुओं का परिचय देते हैं।

Vap

इसका अर्थ है "वर्तमान पैराग्राफ के चारों ओर का चयन करें", यह वर्तमान पैराग्राफ और उसके बाद खाली लाइन का चयन करें।

V2ap

इसका मतलब है "वर्तमान पैराग्राफ और अगले पैराग्राफ के आसपास का चयन करें।"

}V-2ap

इसका मतलब है "वर्तमान पैराग्राफ के अंत में जाएं और फिर नेत्रहीन इसे और पूर्ववर्ती पैराग्राफ का चयन करें।"

विम को एक भाषा के रूप में समझना आपको इससे सबसे अच्छा लाभ प्राप्त करने में मदद करेगा।

आपके द्वारा चयन करने के बाद, आप अन्य कमांड के साथ संयोजन कर सकते हैं:

Vapd

उपरोक्त कमांड से, आप एक पैराग्राफ के चारों ओर चयन कर सकते हैं और इसे हटा सकते हैं। बदले dएक को yकॉपी करने के लिए या एक को cबदलने के लिए या एक करने के लिए करने के लिएp खत्म हो गया चिपकाने के लिए।

एक बार जब आप लटका लेते हैं कि ये सभी कमांड एक साथ कैसे काम करते हैं, तो आपको अंततः कुछ भी चुनने की आवश्यकता नहीं होगी। पैराग्राफ को नेत्रहीन चयन और फिर हटाने के बजाय, आप केवल dapकमांड के साथ पैराग्राफ को हटा सकते हैं ।


} V-2ap का उपयोग -2 वास्तव में स्मार्ट है।
अंबरीश

40

v35G कर्सर से लाइन 35 तक सब कुछ का चयन करेंगे।

vआपको चुनिंदा मोड में रखता है, 35वह पंक्ति संख्या निर्दिष्ट करता है जिसे आप चाहते हैंG जाना हैं।

आप यह भी उपयोग कर सकते हैं v}जो अगले पैराग्राफ की शुरुआत तक सब कुछ का चयन करेगा।


16

लाइनों की संख्या का चयन करने के लिए:

Shift + v 9j - 10 लाइनों का चयन करें


2
छोटी श्रेणियों के लिए यह अच्छा है, खासकर जब साथ में जोड़ा जाता है:set rnu
पीटर रिंकेर

9

Shift+V n j या Shift+V n k

यह वर्तमान लाइन और अगली / पिछली nलाइनों का चयन करता है । मुझे यह बहुत उपयोगी लगता है।


यह एक सरल तरीका है जिसकी मुझे तलाश थी। धन्यवाद
Arsal

6

v 35 जे

न्यूनतम 30 वर्ण के लिए पाठ जोड़ा गया


6

v%

पूरे ब्लॉक का चयन करेगा।

इसके साथ खेलें:

v}, vp, vs, आदि

सहायता देखें:

:help text-objects

जो पत्र, शब्द, वाक्य, पैराग्राफ, ब्लॉक, और इसी तरह का चयन करने के विभिन्न तरीकों को सूचीबद्ध करता है।



4

आप कोष्ठक से vi}घिरे ब्लॉक का चयन करने के लिए प्रेस कर सकते {}हैं जहां आपका कर्सर वर्तमान में स्थित है।

यह वास्तव में मायने नहीं रखता है कि आप उस ब्लॉक के अंदर कहाँ हैं (बस सुनिश्चित करें कि आप सबसे बाहरी में हैं)। इसके अलावा आप ऐसी {किसी भी चीज़ में बदलाव कर सकते हैं जिसमें एक जोड़ी है जैसे )या ]


3

आप हमेशा क्रियाओं को दोहराने के लिए केवल पूर्ववर्ती संख्याओं का उपयोग कर सकते हैं:

  • दृश्य मोड में, टाइप करें 35 और कर्सर 35 बार नीचे जाएगा, अगली 35 पंक्तियों का चयन करेगा
  • सामान्य मोड में:
    • 35 लाइनें हटाएं 35dd
    • 35 बार पेस्ट करें 35p
    • 35 परिवर्तन पूर्ववत करें 35u
    • आदि।

2

सरल बस प्रेस Shift v line number gg

उदाहरण: आपकी वर्तमान लाइन लाइन 41 तक प्रेस Shift v 41 gg


1

} का अर्थ है कर्सर को अगले पैराग्राफ में ले जाना। इसलिए, v}पूरे पैराग्राफ का चयन करने के लिए उपयोग करें।


0

दृश्य में सभी का चयन करने के लिए: टाइप करें Esc यह सुनिश्चित करने के लिए कि योर सामान्य मोड में हैं

:0 

फ़ाइल की शुरुआत में जाने के लिए ENTER टाइप करें

vG

आप ggपहली पंक्ति में भी जाने के लिए सामान्य मोड में उपयोग कर सकते हैं ।
हुंगज़ोंगहाओ

0

यह जानना आसान हो सकता है:

उदाहरण के उपयोग के लिए लाइनों की एक ही अमाउंट का चयन करने के लिए 1v आपको कुछ मॉडिफिकेशन का उपयोग करना चाहिए था 1v, जिसे ब्लॉकवाइज़ या लिनेनलाइज़ करने में सक्षम होना चाहिए ।

आज मैंने इस अद्भुत टिप को यहाँ से देखा :

 :5mark < | 10mark > | normal gvV
 :5mark < | 10mark > | normal gv

आप ऐसा करने वाले दृश्य ब्लॉक की सीमाओं को भी रीसेट कर सकते हैं:

m< .......... sets the visual mode start point
m> .......... sets the visual mode end point

0

मैं इसका उपयोग इंडेंट मोड में गुना के साथ करता हूं:

v ब्लॉक पर कहीं भी विजुअल मोड खोलें

zaza इसे दो बार टॉगल करें

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