2013-05-07 11 views
7

कभी-कभी विम का स्मार्टइंडेंट प्रवेश करने के बाद अगली पंक्ति के लिए इंडेंटेशन का सही स्तर नहीं लेता है और आप पिछली पंक्ति के इंडेंटेशन स्तर पर वापस जाना चाहते हैं और बस वहां से जाएं। मुझे पता है कि आप इसे प्राप्त करने के लिए कुछ बार ctrl-d हिट कर सकते हैं लेकिन यह उस कुंजी के लिए अधिक उपयोगी होगा जो तुरंत ऊपर की रेखा के इंडेंटेशन स्तर पर जाता है।डालने मोड में पिछले इंडेंटेशन स्तर पर वापस कैसे जाएं?

+0

आपको 'smartindent' ड्रॉप करना चाहिए शायद आपके फ़ाइल प्रकार के लिए एक बेहतर डिफ़ॉल्ट' indentexpr' है। – romainl

+0

मैं वास्तव में स्मार्टइंडेंट का उपयोग नहीं करता और फ़ाइल टाइप के प्लगइन इंडेंटेशन नियमों का उपयोग करता हूं जैसा आपने सुझाव दिया है। हालांकि वे पूरी तरह सटीक नहीं हैं ... – rgrinberg

उत्तर

1

आप (मैं नहीं कर सकता) इस तरह के एक सरल कार्य के लिए एक प्लगइन स्थापित करने के लिए परेशान नहीं किया जा सकता है, तो यह सरल मानचित्रण का प्रयास करें:

:inoremap <C-D> <Esc>:call setline(".",substitute(getline(line(".")),'^\s*',matchstr(getline(line(".")-1),'^\s*'),''))<CR>I 

अब Ctrlडी डालने मोड में होगा कार्य करें: पिछली पंक्ति की तरह मौजूदा रेखा को इंडेंट करें।

यह नई लाइन पर टाइप करना शुरू करने से पहले यह सबसे अच्छा काम करता है, क्योंकि यह कर्सर को इंडेंटेशन के ठीक पहले रीसेट कर देगा।

+0

धन्यवाद, यह सबसे प्रत्यक्ष और आसान जवाब है। मैं वास्तव में प्लगइन के साथ गया है कि इगगो हालांकि पोस्ट किया गया। – rgrinberg

1

सामान्य मोड में आप < और > का उपयोग इंडेंटेशन बढ़ाने या घटाने के लिए कर सकते हैं। वे मौजूदा लाइन के लिए आंदोलनों, दृश्य चयन और >><< के साथ अपेक्षित काम करते हैं। आप "सही" इंडेंटेशन स्तर को चुनने के लिए = का भी उपयोग कर सकते हैं, फिर से यह आंदोलनों आदि के संबंध में अपेक्षित काम करता है।

तो मैं आमतौर पर जो करता हूं, संपादन के बाद सामान्य मोड में इंडेंटेशन त्रुटियों को ठीक करता है, = का चयन और उपयोग करने के ब्लॉक का संयोजन, और फिर << और >> के साथ व्यक्तिगत लाइनों को ठीक करना।

0

आप <C-O>=G का उपयोग कर कर्सर से इंडेक्स मोड में फ़ाइल के अंत में इंडेंट करने के लिए कर सकते हैं। या एक इंडेंटेशन स्तर को हटाने के लिए <C-O><<

+4

डालने मोड में Ctrl + d और ctrl + t का उपयोग करना आसान है। – jbr

3

मैं अगर यह शुद्ध संयोग है, लेकिन एलेक्सी Radev सिर्फ prev_indent plugin, जो पिछले खरोज स्तर पर मौजूदा लाइन ले जाने के लिए एक डालने मोड मानचित्रण और :PrevIndent आदेश प्रदान करता है प्रकाशित किया है पता नहीं है।

+0

एक आकर्षण की तरह काम करता है, धन्यवाद – mko

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