जब विस्तारक सेट किया जाता है तो INSERT मोड में टैब डालें


12

मैंने कई वर्णों में बदलने के लिए expandtabअपनी .vimrcफ़ाइल में सेट किया है । हालाँकि कुछ फ़ाइलों (जैसे मेकफाइल) को वास्तविक रूप से डाले गए चरित्र की आवश्यकता होती है ।tabspacetab

tabजब मैं टाइप कर रहा हूँ तो प्रविष्टि को बाध्य करने का एक आसान तरीका है ?

जवाबों:


27

सिर्फ दबाने के बजाय Tab, पहले दबाएं Ctrl-Vऔर फिर दबाएं Tab

इसका उपयोग कई विशेष वर्णों को सम्मिलित करने के लिए किया जा सकता है। :help i_CTRL-Vविवरण के लिए देखें।

Ctrl-Vकमांड-लाइन मोड ( :help c-CTRL-V), और यहां तक ​​कि कुछ अन्य कार्यक्रमों में भी पूरी तरह से काम करता है। (उदाहरण बैश, म्यूट।)

यदि आपने Ctrl-Vकिसी और चीज़ के लिए मैप किया है, तो प्रयास करें Ctrl-Q। यह विम के रूप में एक ही प्रभाव है Ctrl-V, लेकिन कुछ टर्मिनल नियंत्रण प्रवाह के लिए इसका उपयोग करते हैं, जिस स्थिति में विम कभी इसे नहीं देखेगा।


5
या <c-v>009टूटी हुई टैब की या हार्डकोर ASCII
प्यूरिस्ट के

17

अपने व्यवहार को बदलने के बजाय (जो त्रुटि प्रवण है)।
मैं इस फ़ाइल प्रकार के लिए अलग तरह से व्यवहार करने के लिए विम सेट करूँगा।

इसलिए अपने सामान्य संपादन में मैं टैब का विस्तार करता हूं। लेकिन विशेष रूप से makeफ़ाइलों के लिए मैंने सेट किया noexpandtabताकि टैब बरकरार रहे।

अपनी ~ / .vimrc फ़ाइल में निम्न जोड़ें:

" Normal action
set expandtab

if has("autocmd")

    " If the filetype is Makefile then we need to use tabs
    " So do not expand tabs into space.
    autocmd FileType make   set noexpandtab

endif

3
मैंने उनके प्रश्न का उत्तर दिया, लेकिन आपने वास्तव में पता लगाया है कि अंतर्निहित समस्या मेरे द्वारा किए गए तरीके से बेहतर है। बहुत बढ़िया।
रिच

मुझे लगता है कि दोनों उत्तर मूल्यवान हैं। क्योंकि कभी-कभी आप कहीं रिमोट से लॉग इन करते हैं और vim config के साथ गड़बड़ नहीं करना चाहते हैं, लेकिन बस जल्दी से एक Makefile संपादित करना चाहते हैं।
डैनियल शमित्ज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.