मैं स्वचालित रूप से नई लाइनों पर कैसे इंडेंट कर सकता हूं?


15

मैं इंडेंटेशन के अलग-अलग स्तरों वाली परियोजनाओं पर काम करता हूं। इन परियोजनाओं में से कई में, फ़ाइलों को आमतौर पर कैसे संरचित किया जाता है, अधिकांश लाइनों को कम से कम दो स्तरों (जैसे जावा में तरीके) के लिए प्रेरित किया जाता है।

इसका मतलब यह होगा कि लाइन लाइन पर एक नई लाइन बनाते समय

public void something () {

मेरे कर्सर को अगली पंक्ति में लाएगा, जैसे स्वचालित रूप से इंडेंट किया जाएगा

public void something () {
    [cursor]

जबकि मैं टैब कुंजी को एक नई लाइन पर कुछ बार हिट कर सकता हूं ताकि इसे लाइन में लाया जा सके, क्या ऐसा करने का एक बेहतर तरीका है (स्वचालित रूप से संभव है)?

जवाबों:


12

यह autoindentविकल्प और filetypeप्लगइन के संयोजन का उपयोग करके किया जा सकता है ।

autoindentजब एक नई लाइन बनाने विकल्प आपके वर्तमान खरोज कॉपी कर देंगे। इसलिए यदि नई लाइन शुरू करते समय आपका वर्तमान इंडेंटेशन स्तर 4 है, तो कर्सर को अगली लाइन पर उसी इंडेंटेशन स्तर पर ले जाया जाएगा।

आपकी ~/.vimrcफ़ाइल में, आप डाल देंगे

set autoindent

आप filetypeफ़ाइल प्रकार के आधार पर अगले इंडेंटेशन स्तर को स्वचालित रूप से निर्धारित करने के लिए प्लगइन का उपयोग कर सकते हैं ।

आप इसे फ्लाई पर सक्षम कर सकते हैं

:filetype indent on

या, आपकी ~/.vimrcफ़ाइल में आप डाल देंगे

filetype plugin indent on

जो फ़ाइल प्रकार के आधार पर स्वचालित रूप से इंडेंटेशन का निर्धारण करेगा।


6

का प्रयोग करें :set cindent( :set cinलघु के लिए) या :set smartindent( :set siसंक्षिप्त के लिए)। यदि आपकी लाइन एक प्रारंभिक ब्रेस में समाप्त होती है, और आप हिट करते हैं Enter, तो निम्न पंक्ति स्वचालित रूप से एक अतिरिक्त स्तर पर इंडेंट हो जाएगी। (यह उससे बेहतर है :set autoindent, जो केवल उसी स्तर पर अगली पंक्ति का संकेत देता है।) cindentसी जैसी भाषाओं के अनुरूप बेहतर है, जबकि smartindentअन्य प्रोग्रामिंग भाषाओं के साथ उपयोग के लिए अधिक बहुमुखी है।

राशि और खरोज के प्रकार के द्वारा नियंत्रित किया जाता :set shiftwidth=…, :set tabstop=…, और :set expandtab


'smartindent'पदावनत किया जाता है, इसलिए यह सबसे अच्छा विकल्प नहीं है। यह द्वारा प्रतिस्थापित किया गया 'cindent'और 'cinoptions'सी जैसी भाषाओं के लिए। सामान्य तौर पर, हालांकि, फ़ाइल प्रकार इंडेंटिंग 'autoindent'एक वापसी के रूप में जाने का रास्ता है ।
जामसेन

@jamessan smartindentपदावनत नहीं है, लेकिन cindentध्यान देने योग्य है। मैंने जवाब अपडेट कर दिया है। (धन्यवाद!)
२००_सफल

मैं आपको editorconfig.org पर एक नज़र डालने की भी सलाह दूंगा । बेशक वीआईएम (और कई अन्य संपादकों) के लिए एक प्लगइन है और यह आपके संपादक को अपने वीसीएस पर रखने के लिए एक शानदार तरीका है
साइबर ओलिवेरा

0

फ़ाइल के नीचे, मैं उपयोग कर रहा हूँ:

# vim: ts=2 sw=2 sts=2 sr noet st ai si

उदाहरण के लिए Dockerfile:

FROM centos-7
RUN ...
CMD ...

# vim: ts=2 sw=2 sts=2 sr noet st ai si

यदि आप केवल इंडेंटेशन रखना चाहते हैं, तो उपयोग करें # vim: st ai si

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