VIM के साथ कई पंक्तियाँ प्रस्तुत करें?


42

उदाहरण के लिए, मैं इस कोड को संपादित कर रहा हूं:

<html>
<body>
<script>
    var a = 10;
    a += 100;
</script>
</body>
</html>

अब मुझे स्क्रिप्ट लाइन को इंडेंट करने की आवश्यकता है:

<html>
<body>
    <script>
        var a = 10;
        a += 100;
    </script>
</body>
</html>

मैं प्रत्येक पंक्ति की शुरुआत में कर्सर को स्थानांतरित किए बिना और टैब को दबाए बिना ऐसा कैसे कर सकता हूं?


कमांड मोड में:gg=G
प्रिंस जॉन वेस्ले

जवाबों:


71

Vदृश्य लाइन मोड पर स्विच करने के लिए दबाएं और उन लाइनों को हाइलाइट करें जिन्हें आप दबाकर इंडेंट करना चाहते हैं j। फिर >उन्हें इंडेंट करने के लिए दबाएं । तो पूरा कमांड होगा Vjjj>

वैकल्पिक रूप से, अपने कर्सर को <script>टैग पर रखें और 4>>चार लाइनों को इंडेंट करने के लिए उपयोग करें।


1
इसके अलावा, कई इंडेंट स्तरों को बदलते समय, अत्यंत उपयोगी है (यह दृश्य के साथ समान with ब्लॉक ’विकर को आगे बढ़ाएगा, उपरोक्त 4 >> की तरह एक [गणना]।
पिफ

इसके अलावा, यदि आपकी सिंटैक्स फ़ाइल टैग मिलान कर सकती है, तो आप "स्क्रिप्ट" शब्द पर अपना कर्सर रख सकते हैं, और विज़ुअल मोड के लिए v दबाएं, मिलान टैग पर जाने के लिए%, और> सिंटैक्स पर आधारित ऑटो इंडेंट को = = इंडेंट या = को इंडेंट करें, तो कुल कमांड v%> या v% =
बेन

यह चरित्र-वार दृश्य मोड के साथ भी काम करता है (लोअरकेस v), जिसे टाइप करना थोड़ा आसान है। तो vjjj>
जेम्स स्क्रिपवेन

14

उपरोक्त उत्तर के पूरक के लिए, यहां एक नज़र डालें। https://stackoverflow.com/questions/235839/how-do-i-indent-multiple-lines-quickly-in-vi

ऐसा करने के लिए एक से अधिक तरीके हैं, और मैं पहले से ही उपलब्ध कराए गए प्रलेखन के साथ प्रतिस्पर्धा करने की उम्मीद नहीं कर सकता।

मेरा व्यक्तिगत पसंदीदा ==ऑटो-इंडेंट है। 5==ऑटो-इंडेंट 5 लाइनों के लिए।


10

वर्तमान लाइन के नीचे की सभी लाइनों को इंडेंट करने के लिए

=G

इसलिए, संपूर्ण फ़ाइल को इंडेंट करने के लिए, फ़ाइल की शुरुआत में जाएं ( gg) और फिर वर्तमान लाइन के नीचे की सभी लाइनों को इंडेंट करें ( =G)

gg=G

वर्तमान लाइन को इंडेंट करने के लिए

==

तो, nवर्तमान लाइन के नीचे की रेखाओं को इंडेंट करने के लिए

n==

उदाहरण के लिए, वर्तमान लाइन के नीचे 4 लाइनों को इंडेंट करने के लिए

4==

ये कई लाइनों को इंडेंट करने के लिए सबसे सरल कमांड हैं।


8

यदि यह मैं था, तो मैं नोटिस करूंगा कि इंडेंट करने के लिए 4 लाइनें हैं, शीर्ष लाइन पर स्थिति है और फिर टाइप करें >4>। यदि गिनती करने के लिए बहुत सारी लाइनें थीं, तो मैं शीर्ष रेखा पर स्थिति बनाऊंगा और mkk नाम का एक चिह्न बनाऊंगा, फिर नीचे की रेखा पर स्थिति (जो कई स्क्रीनफुल दूर हो सकती है), और टाइप करें>'k


लाइनों पर गणित करने से बचाने के लिए अच्छी टिप, धन्यवाद!
झिलमिलाहट

3

यहाँ एक अच्छा तरीका है, यदि आप बड़ी संख्या में लाइनों को इंडेंट करने की कोशिश कर रहे हैं:

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