2009-06-30 6 views
177

मुझे यकीन है कि इस तरह की चीजों के लिए प्लगइन होना प्रतीत होता है, लेकिन अब मुझे इसकी आवश्यकता है, मुझे यह नहीं लगता है (स्वाभाविक रूप से), इसलिए मैं बस अच्छा और सरल पूछूंगा।विम में ब्रैकेट्स (या उद्धरण या ...) के बीच कैसे चयन करें?

ब्रैकेट, या उद्धरण, या आम तौर पर मिलान करने वाले वर्णों की सूची के बीच चयन करने का सबसे आसान तरीका क्या है?

write (*, '(a)') 'Computed solution coefficients:' 

उदाहरण के लिए, यहाँ मैं (a), या Computed solution coefficients: चयन करना चाहते हैं।

मुझे मल्टीलाइन में रुचि नहीं है, केवल एक पंक्ति पर होने वाले मामले।

उत्तर

223

जो भी नेविगेशन कुंजी आप कोष्ठक के अंदर प्राप्त करना चाहते हैं उसका उपयोग करें, तो आप मिलान करने वाले माता-पिता के भीतर सब कुछ कॉपी करने के लिए yi( या yi) का उपयोग कर सकते हैं। यह स्क्वायर ब्रैकेट्स (उदा। yi]) और घुंघराले ब्रेसिज़ के साथ भी काम करता है। y के अतिरिक्त, आप टेक्स्ट को हटा या बदल सकते हैं (उदा। ci), di])।

मैंने इसे डबल और सिंगल कोट्स के साथ करने की कोशिश की और यह वहां भी काम करता प्रतीत होता है। अपने डेटा के लिए, मैं कार्य करें: C को

write (*, '(a)') 'Computed solution coefficients:' 

ले जाएँ कर्सर, तो टाइप करें yi'p मारा, एक रिक्त पंक्ति को कर्सर ले जाएं और

Computed solution coefficients: 

CMS noted के रूप में मिलता है, इस दृश्य मोड चयन के लिए भी काम करता है - बस vi), vi}, vi', आदि

+0

अलग शब्दों के साथ काम नहीं करता है। – Rook

+0

मैं आमतौर पर पूर्व परिभाषित मिलान वर्णों (आमतौर पर केवल एकल और डबल कोट्स, और सभी प्रकार के ब्रैकेट) के बीच सब कुछ चुनने का एक तरीका ढूंढ रहा हूं। – Rook

+0

अलग शब्दों से आपका क्या मतलब है? मैंने इसे "[x, y, z]" पर आज़माया और इसे "x, y, z" –

25

चयन की यह विधि का उपयोग विम सहायता में अंतर्निहित और अच्छी तरह से कवर किया गया है। इसमें एक्सएमएल टैग और अधिक शामिल हैं।

:help text-objects देखें।

+1

: टेक्स्ट-ऑब्जेक्ट्स उपयोगी सामग्री के करीब आते हैं ... आप कम से कम कुछ सामान्य लोगों का उल्लेख कर सकते हैं, जैसे कि "और ए (जब दृश्य मोड में। – Stobor

+2

(इसके अलावा, +1 क्योंकि लंबे समय तक होने के बावजूद vim उपयोगकर्ता, मुझे इनके बारे में पता नहीं था!) ​​ – Stobor

+0

@Stobor। चीयर्स ने संदर्भ दिया कि संदर्भ – michael

7

तीरों का उपयोग करें या hjkl% दृश्य (अर्थात चयन) मोड का चयन करने के लिए, bracketing भाव से एक के लिए प्राप्त करने के लिए तो v, तो अन्य ब्रैकेट के लिए कूद करने के लिए।

searchpair({start}, {middle}, {end} [, {flags} [, {skip} 
      [, {stopline} [, {timeout}]]]]) 
    Search for the match of a nested start-end pair. This can be 
    used to find the "endif" that matches an "if", while other 
    if/endif pairs in between are ignored. 
    [...] 

(http://vimdoc.sourceforge.net/htmldoc/eval.html)

+5

(उद्धरण नहीं करता है, दुर्भाग्यवश, हालांकि ...) – Stobor

3

searchpair में निर्मित समारोह का उपयोग कर .vimrc में एक विम समारोह लिखें ")।

एक कोष्ठक ब्लॉक के अंदर, मैं vib का उपयोग

एक घुंघराले ब्रेसिज़ के अंदर ब्लॉक आप viB उपयोग कर सकते हैं ("आंतरिक ब्लॉक का चयन") ("राजधानी बी")

चयन "समावेशी" बनाने के लिए (उद्धरण, कोष्ठक या ब्रेसिज़ का चयन करें) आप i के बजाय a का उपयोग कर सकते हैं।

आप मैनुअल पर Text object selections के बारे में और अधिक पढ़ सकते हैं।

197

एकल उद्धरण मैं आमतौर पर एक vi' ("आंतरिक एकल उद्धरण का चयन करते हैं के बीच चयन करने के लिए:

+0

उस टिप के लिए धन्यवाद, मैं खोज रहा हूं और कुछ इसी तरह की मांग कर रहा हूं और मेरे परिणामों से संतुष्ट नहीं था। बहुत बढ़िया। – alfredodeza

+0

यह टिप मेरे दिमाग और मांसपेशियों की स्मृति के अंदर बहुत आसान और आसान है। धन्यवाद। – Ghazaly

+0

दस्तावेज़ों के लिंक के लिए धन्यवाद। – thorncp

15

एकल उद्धरणों के भीतर चयन करने के लिए vi' का उपयोग करें।

कंस्ट्रैसिस के भीतर चयन करने के लिए vi( का उपयोग करें।

+3

नोट: 'ci'' या' ci ('दृष्टि से चयन करने के बजाय बदलने के लिए। लेकिन यह वही करता है जो मैं चाहता था। धन्यवाद :) – Norris

+0

दूसरा एक केवल उस() ब्लॉक के भीतर काम करता है, इसलिए आमतौर पर मैं '% vi (' या '% vib' –

-7

विम में एक साधारण कीपैप इस समस्या को हल करेगा। मानचित्र viq F "lvf" hh यह उपरोक्त आदेश उद्धरणों के बीच खोज करने के लिए कुंजी पर viq। ।। https://github.com/beloglazov/vim-textobj-quotes

यह के लिए पाठ वस्तुओं प्रदान करता है: "किसी भी चरित्र के साथ बदलें और अपने keymaps बनाने स्टिक इस स्टार्टअप के दौरान vimrc में है और आप इसे हर उपयोग करने के लिए सक्षम होना चाहिए

+2

करता हूं इसके लिए एक मानक vim कमांड है, कीमैप की आवश्यकता नहीं है – Adriana

1

मैं एक प्लगइन vim-textobj-quotes कर दिया है किसी भी प्रकार के उद्धरण के सबसे नज़दीकी जोड़े। केवल iq या aq का उपयोग करके यह आपको एकल ('), डबल ("), या बैक (`) उद्धरणों की सामग्री पर काम करने की अनुमति देता है जो वर्तमान में कर्सर से घिरा हुआ है, कर्सर के सामने हैं , या पीछे (वरीयता के उस क्रम में)। दूसरे शब्दों में, उद्धरण तक पहुंचने के लिए आवश्यक होने पर यह आगे या पीछे कूदता है।

यह (कर्सर | साथ दिखाया गया है) उदाहरण को देखकर समझने के लिए आसान है:

  1. से पहले: foo '1, |2, 3' bar; diq दबाकर: foo '|' bar
  2. इससे पहले: foo| '1, 2, 3' bar; diq दबाकर: foo '|' bar
  3. इससे पहले: foo '1, 2, 3' |bar; diq दबाकर: foo '|' bar
  4. इससे पहले: foo '1, |2, 3' bar; daq दबाकर: foo | bar
  5. इससे पहले: foo| '1, 2, 3' bar; daq दबाकर: foo | bar
  6. इससे पहले: foo '1, 2, 3' |bar; daq दबाने के बाद: foo | bar

उपरोक्त उदाहरण एकल उद्धरण के लिए दिया जाता है, प्लगइन वास्तव में डबल (") और वापस (`) उद्धरण के लिए उसी तरह काम करता

तुम भी किसी अन्य ऑपरेटरों का उपयोग कर सकते हैं। : ciq, diq, yiq, viq, आदि

कृपया मुझे सबसे ज्यादा VO करने के लिए एक विस्तार जोड़ना होगा अधिक जानकारी के लिए ऊपर लिंक GitHub पेज पर एक नजर है

1

। टेड जवाब:

आप जाँचने का उपयोग करने और क्लिपबोर्ड में कॉपी करना चाहते हैं कर रहे हैं,

"+<command>

का उपयोग कोष्ठक (या कोष्ठक या कर्ली कोष्ठक)

के लिए के बीच सभी सामग्री कॉपी करने के लिए उदाहरण: "+yi} आपके कर्सर के घुंघराले ब्रैकेट्स के बीच सभी सामग्री क्लिपबोर्ड पर कॉपी करेगा।

संबंधित मुद्दे