क्या कमांड का उपयोग करके आपके स्रोत फ़ाइल में स्वचालित रूप से सब कुछ टैब करने का एक तरीका है? [बन्द है]


11

और फिर उसके बाद स्वचालित रूप से फिर से इंडेंट करने के लिए? मैंने एक टर्मिनल स्क्रीन से दूसरे में कोड कॉपी करने की कोशिश की है, लेकिन सारणीकरण सभी गड़बड़ हो गया है।

मुझे नहीं पता था कि इस कार्यक्षमता को क्या कहते हैं, इसलिए मेरे लिए इसे Google पर ढूंढना कठिन था (जो आम तौर पर टैब आकार सेट करने के तरीके से संबंधित चीजें लौटाता था, जो कि मैं दुर्भाग्य से नहीं देख रहा था)।



1
मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह एक प्रोग्रामिंग टूल के बारे में है। उपकरण के बारे में प्रश्न बेहतर करने के लिए अनुकूल हैं StackOverflow इस मामले में, या Vi.SE । हालाँकि, यह प्रश्न माइग्रेट करने के लिए बहुत पुराना है।

1
मैं विषय से हटकर के रूप में इस सवाल को बंद करने, क्योंकि यह एक विशिष्ट उपकरण के उपयोग के बारे में है और स्टैक ओवरफ़्लो पर कहा गया है चाहिए या (यदि पूछा अब) मतदान कर रहा हूँ vi.se

जवाबों:


9

विम के पास एक retabआदेश है जो आपको अपने दस्तावेज़ को सारणीबद्ध या अप्रमाणित करने की अनुमति देता है। यह जैसे tabstopऔर सेटिंग्स का उपयोग करता है expandtab। इसलिए, यदि आप टैब को उन स्थानों से बदलना चाहते हैं जो आप निम्न कार्य कर सकते हैं:

:%retab

देखें retabपूर्ण विवरण के लिए प्रलेखन।

कैविट एम्प्टर : यह उन टैब को भी बदलता है जो एक लाइन की शुरुआत में नहीं होते हैं । इसलिए यदि आप तार के बीच में हार्ड टैब का उपयोग करते हैं तो उन्हें भी बदल दिया जाएगा।


3
सामान्य तौर पर, किसी भी तार में एक सच्चे टैब को शामिल करना एक बुरा विचार है। यह अभी भी हो सकता है, लेकिन \tपसंद किया जाता है, बस इस प्रकार के मुद्दों से बचने के लिए।
स्पेंसर रथबुन

6

@ कालेब के जवाब पर विस्तार करने के लिए (मेरे पास टिप्पणी करने के लिए अभी तक प्रतिनिधि नहीं है), रेटाब कमांड को निष्पादित करने से पहले, आपको इसकी आवश्यकता होगी :set expandtab (set et)। अन्यथा रिटैब स्थान के साथ टैब को प्रतिस्थापित नहीं करेगा।

एडिटॉन में, आप टैबस्टॉप निर्दिष्ट करना चाह सकते हैं। अक्सर दूसरों द्वारा बनाए गए स्रोत कोड में, कोड को 4 या 2 सेट किए गए टैब के साथ लिखा जाता है। :%retabकमांड करने से पहले , अलग-अलग टैब के साथ प्रयोग करें। प्रयत्न

:set ts=8 (the default)
:set ts=4 
:set ts=2  

देखना है कि कौन सी सेटिंग सबसे ज्यादा मायने रखती है।

पीछे की ओर जाने के लिए (उपयुक्त TAB वर्णों के साथ रिक्त स्थान की जगह, उपयोग करें

:set noet
:%retab!

1

अन-टैब से, क्या आपका मतलब टैब को स्पेस में बदलना है? यदि हां, तो इस तरह से पूरे बफर में टैब के लिए स्थान रिक्त स्थान:

:%s/^I/    /g

यह प्रतिस्थापन के दाईं ओर चार स्थान है, लेकिन आप इसे जो चाहें संख्या बना सकते हैं। शाब्दिक ^Iटैब वर्ण प्राप्त करने के लिए , आप ^Vटैब कुंजी के बाद हिट कर सकते हैं ।

आप =कमांड के साथ फिर से इंडेंट कर सकते हैं । बफ़र की संपूर्ण सामग्री को फिर से इंडेंट करने के लिए, इन आदेशों का उपयोग करें:

gg
=G

यह आपको शीर्ष पर ले जाता है, फिर नीचे तक सब कुछ फिर से भेज देता है।


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