मुझे यकीन नहीं है कि एक बेहतर तरीका है। लेकिन, यहां कुछ तरीके है कि आप इसे (मैं का वैसे भी सोच सकते हैं कि) कर सकता है ... हैं
आपका दृश्य ब्लॉक समाधान
आप की तरह ने कहा: प्रेस Ctl-V
लाइनों आप चाहते हैं का चयन डालने के लिए I
दबाएं, और रिक्त स्थान की संख्या दर्ज करें।
खोजें
ऊपर, लेकिन एक छोटे से अधिक लचीला करने के लिए इसी तरह की है - आप 'का चयन पैरा' vip
आदेश, या वास्तव में किसी भी सीमा के साथ साथ उपयोग कर सकते हैं: प्रेस v
या vip
या आप क्या चयन करने के लिए है रेंज, और टाइप :s/^/{n spaces}
जहां {n रिक्त स्थान} उन रिक्त स्थानों की संख्या है जिन्हें आप सम्मिलित करना चाहते हैं।
यह थोड़ा और वर्बोज़ है, लेकिन किसी भी सीमा के लिए बहुत अच्छी तरह से काम करता है। बिल्ली, अगर आप पूरी फाइल करना चाहते हैं तो आप Ctl-A
कर सकते हैं या आप (ओएस आश्रित) क्या कर सकते हैं और पूरी फ़ाइल को इंडेंट कर सकते हैं (या बस पूरी विज़ुअल मोड चीज़ को छोड़ दें और इसे कमांड मोड करें ... :1,$s/^/{n spaces}
में
ध्यान दें कि आप में /// जब से तुम अंत में किसी भी टैग डाल नहीं कर रहे हैं तीसरे स्लैश शामिल करने के लिए नहीं है।
वैश्विक
हो सकता है कि आप केवल मांगपत्र लाइनों करना चाहते हैं कि कुछ पैटर्न से मेल करें। कहें ... फू को शामिल करने वाली सभी पंक्तियां। कोई समस्या नहीं: :g/foo/s/^/{n spaces}
टाइप करें
ग्लोबल विशेष रूप से आसान है यदि इसके समान रेखा वाले बहु-रेखा खंड। आप बस सामान्य मोड भूमि से बच सकते हैं और अपनी इच्छित लाइनों का चयन कर सकते हैं और तदनुसार इंडेंट कर सकते हैं: :g/foo/norm Vjj:s/^/{n spaces}Ctl-V{Enter}
। अंत में उस अतिरिक्त Ctl-V{Enter}
के साथ थोड़ा अधिक जटिल लेकिन कुछ परिस्थितियों में उपयोगी है।
उपयोग tabstop और shiftwidth
हाँ, अगर आपके यह एक बहुत कुछ कर - :set ts=2
मुझे क्या करना चाहते हैं और :set et
और :set sw=2
और >>
का उपयोग करें और <<
हर किस तरफ ...
एक बनाओ फंक्शन
ठीक है, तो अभी भी पर्याप्त संक्षिप्त नहीं है और किसी भी कारण से आपको यह करने की ज़रूरत है और आपके साथ गड़बड़ नहीं कर सकते, et
और ts
सेटिंग्स। कोई बात नहीं, बस एक त्वरित समारोह ऊपर लिख सकते हैं और यह एक localleader
मानचित्रण दे:
function! AddSpace(num) range
let s:counter = 0
let s:spaces = ''
while s:counter < a:num
let s:spaces .= ' '
let s:counter = s:counter + 1
endwhile
execute a:firstline .','. a:lastline .'s/^/'. s:spaces
endfunction
:map <LocalLeader>i :call AddSpace(3)Ctl-V{enter}
हो सकता है कि सिर्फ इस केवल एक ही जानने से बेहतर है क्या करने के लिए एक ही रास्ता है और अधिक से अधिक जानने?
ctrl + वी, तो जे जे ': le एन', जहां n की संख्या है सब के बाद, कभी कभी सबसे अच्छा समाधान समस्या :)
आप 'sw' को बदलने से क्यों बचना चाहते हैं? यही वह है जो आगे है। – Daenyth
दृश्य रेखा चयन में, '{count}>' '{count} * 'shiftwidth' द्वारा इंडेंट करेगा, जबकि सामान्य मोड में,' {count} 'का उपयोग इंडेंट किए गए लाइनों की गणना करने के लिए किया जाता है। शायद यही वह है जो आप चाहते हैं। ध्यान दें कि दृश्य ब्लॉक चयन के लिए, लेकिन रेखा की शुरुआत के बजाय ब्लॉक के पहले कॉलम से पहले अंतर डाला गया है। – Benoit