Vim में कोड ब्लॉक चुनें


13

इस तरह एक कोड दिया:

588          while ($linecounter > 0) {
589             $token = " ";
590             while ($token != PHP_EOL) {
591                 if (fseek($handle, $pos, SEEK_END) == -1) {
592                     $beginning = true;
593                     break;
594                 }
595                 $token = fgetc($handle);
596                 $pos--;
597             }
598             $linecounter--;
599             if ($beginning) {
600                 rewind($handle);
601             }
602         }

कर्सर =लाइन 590 में चरित्र पर है ।

कोड ब्लॉक को चुनने का सबसे कुशल तरीका कौन सा है:

  1. लाइन्स 590-597
  2. लाइनें 591-596 (केवल आंतरिक भाग)

जवाबों:


20

पहले करने के लिए:

  • $लाइन के अंत में जाने के लिए मारो{
  • पुश vया V(आप लाइनों का चयन करना चाहते हैं या नहीं पर निर्भर करता है)
  • पुश %(मिलान ब्रैकेट में कूदने के लिए)।

केवल आंतरिक भाग का चयन करने के लिए, आंतरिक भाग के अंदर जाएं और i{दिशात्मक संशोधक का उपयोग करें ।

उदाहरण के लिए, वर्तमान {…}ब्लॉक के अंदर सब कुछ हटाने के लिए , टाइप करें di{:।


1
वाह, मैंने अभी सीखा है कि कैसे उपयोग करना है yi(, धन्यवाद :)
takeshin

10
  1. $उस पंक्ति के अंत में कूदने के लिए, जिस पर आप (उद्घाटन ब्रेस से अधिक होना चाहते हैं)
    vचयन ब्रेस पर जाने के लिए एक चयन ( Vसंपूर्ण लाइनों के लिए) शुरू करें
    %

  2. jएक पंक्ति नीचे जाने के लिए ताकि आपका कर्सर ब्रेसिज़ के अंदर हो, आप चयन
    vशुरू करने के लिए चयन करने की कोशिश कर रहे हैं ( Vपूरी लाइनों के लिए)
    i{ब्रेसिज़ के लिए सब कुछ का चयन करें


विधि 2 शायद यहां सबसे अच्छी विधि है, क्योंकि विधि 1 में $ आंदोलन केवल काम करता है क्योंकि उद्घाटन ब्रेस लाइन के अंत में है। विधि 2 बिना j आंदोलन के काम करती है यदि आपका कर्सर ब्रेसिज़ के भीतर कहीं भी है।
स्पूनमाइजर

3

कालेब के उत्तर पर थोड़ा विस्तार करने के लिए, vi{कोड ब्लॉक के "अंदर" का चयन करेंगे। कोड ब्लॉक के "बाहर" को शामिल करने के लिए, यानी ब्रेसिज़ सहित, उपयोग करें va{

whileहालांकि इसमें श्लोक शामिल नहीं होगा । ऐसा करने के लिए आप oचयन की शुरुआत में कर्सर को स्थानांतरित करने के लिए उपयोग कर सकते हैं , और फिर 0चयन को पंक्ति की शुरुआत में स्थानांतरित कर सकते हैं।

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