नैनो में 8 स्थानों के बजाय टैब वर्ण 4 स्थान कैसे बनाएं?


152

जब मैं nanoसंपादक में TAB दबाता हूं , तो कर्सर इस तरह से 8 रिक्त स्थान के साथ कूद जाएगा:

def square(x):
        return x * x
def cube(y):
        return y * y * y

मैं इस तरह प्रदर्शित करने के लिए 4 स्टॉप की चौड़ाई को टैब स्टॉप कैसे सेट कर सकता हूं:

def square(x):
    return x * x
def cube(y):
    return y * y * y

नैनो एक बहुत ही बुनियादी संपादक है। वहाँ एक अच्छा मौका है यह सिर्फ इस का समर्थन नहीं करता है।
मिलिमोस

umm न ​​केवल नैनो में, बल्कि यह 8 जगहों पर इंडेंट करता है जब मैं टर्मिनल में अजगर इंटरप्रेटर का उपयोग करता हूं।
पतित


6
@millimoose, टर्मिनल में टैब स्टॉप को बदलना नैनो को प्रभावित नहीं करता है। यह प्रश्न विशेष रूप से नैनो के बारे में होना चाहिए या अजगर के लिए टैब स्टॉप स्थापित करने के बारे में होना चाहिए, लेकिन दोनों के बारे में नहीं और अंतःक्रियात्मक रूप से टैब स्टॉप को tabकमांड के साथ सेट करने के बारे में , जो सभी कार्यक्रमों को प्रभावित नहीं करता है।
क्रिस पेज

जवाबों:


253

यदि आप अजगर की तरह भाषा के साथ नैनो का उपयोग करते हैं (जैसा कि आपके उदाहरण में) तो टैब को स्पेस में बदलना भी एक अच्छा विचार है।

अपनी ~ / .nanorc फ़ाइल संपादित करें (या इसे बनाएं) और जोड़ें:

set tabsize 4
set tabstospaces

यदि आपको पहले से ही टैब के साथ एक फ़ाइल मिल गई है और उन्हें उन स्थानों में बदलना चाहते हैं जो मैं expandकमांड (शेल) की सिफारिश करता हूं :

expand -4 input.py > output.py

मैं टकसाल का उपयोग कर रहा हूं और जब मैं 8 से 4 / etc / nanorc में टैब सेट करता हूं और फ़ाइल पर वापस जाता हूं, तब भी मुझे टैब में 8 स्थान मिल रहे हैं, मैंने उस नैनो फ़ाइल को कॉपी करने की भी कोशिश की ~ /। लेकिन यह काम नहीं करता है, बंद और फिर से खोल दिया टर्मिनल, लेकिन फिर भी मुझे टैब पर 4 स्थान नहीं मिल सकते हैं जब तक कि मैं नैनो-टी 4 का उपयोग नहीं करता। धन्यवाद
एलेक्स

पुनः जाँच लें कि डॉट एक साथ अपनी फ़ाइल शुरू होता है @Alex .nanorcनहीं nanorc। इसे आपके उपयोगकर्ताओं के घर-निर्देशिका में रखा जाना चाहिए, अर्थात /home/your-username/.nanorc
स्वेन रोजेक

1
धन्यवाद, मैंने एक अन्य .nanorc को एक / etc से अलग बनाते हुए समाप्त किया, इसे होम डायर में रखा और इसने काम किया। यह केवल 3 पंक्तियाँ हैं, जिन्हें मैंने नए में शामिल किया है। किसी के लिए भी कोई दिलचस्पी नहीं है: अब सेट करें, सेट करें टैब को सेट करें, 4 को सेट करें और टैब को सेट करें
एलेक्स

5
यदि यह आपका खिलौना है, तो आप इस परिवर्तन को उपलब्ध प्रणाली को व्यापक बना सकते हैं, बस वैश्विक फ़ाइल को संपादित कर सकते हैं /etc/nanorc। वहाँ कुछ अन्य विकल्प हैं जिनका आप आनंद ले सकते हैं।
fcm

हाय @ अलेक्सय। यह लिनक्स शेल कमांड सभी फाइलों के लिए काम करता है, लेकिन एक और आउटपुट-फाइल निर्दिष्ट करना सुनिश्चित करें, अन्यथा आपकी फाइल खाली कर दी जाएगी।
स्वेन रोजेक

91

कमांड-लाइन का झंडा

से man nano:

-T cols (--tabsize=cols)
    Set the size (width) of a tab to cols columns.
    The value of cols must be greater than 0. The default value is 8.
-E (--tabstospaces)
    Convert typed tabs to spaces.

उदाहरण के लिए, टैब आकार को 4 पर सेट करने के लिए, टैब को रिक्त स्थान से बदलें, और फ़ाइल को "foo.txt" संपादित करें, आप कमांड चलाएंगे:

nano -ET4 foo.txt

विन्यास फाइल

से man nanorc:

set tabsize n
    Use a tab size of n columns. The value of n must be greater than 0.
    The default value is 8.
set/unset tabstospaces
    Convert typed tabs to spaces.

अपनी ~/.nanorcफ़ाइल को संपादित करें (यदि यह मौजूद नहीं है तो इसे बनाएं), और उन आदेशों को इसमें जोड़ें। उदाहरण के लिए:

set tabsize 4
set tabstospaces

जब भी इसे लॉन्च किया जाएगा नैनो इन सेटिंग्स को डिफ़ॉल्ट रूप से उपयोग करेगी, लेकिन कमांड-लाइन झंडे उन्हें ओवरराइड करेंगे।


उम ... मैं ~ / निर्देशिका में .nanorc फ़ाइल नहीं ढूँढ सकता
शैतान

1
कोई बात नहीं। मैं / आदि निर्देशिका में nanorc लगता है। धन्यवाद हालांकि
पतित

5
@FallenSatan, आम तौर पर आपको संपादन / etc / nanorc से बचना चाहिए, जब तक कि आपको सिस्टम-वाइड अनुकूलन करने की आवश्यकता न हो। यदि यह पहले से मौजूद नहीं है तो ~ / .nanorc बनाएं और वहां अपने अनुकूलन डालें।
क्रिस पेज

1
ध्यान दें कि उपरोक्त उत्तर में आपको "सेट टैब्स 4" लाइन जोड़ने की आवश्यकता है, न कि "सेट टैबस्पेस 4"
थॉमस एन

1
सुडो नैनो स्पष्ट कारण के लिए ~ / .nanorc नहीं लेगा; इसलिए कमांड-लाइन ध्वज समस्या का अधिक व्यावहारिक समाधान है।
user608800

11

नैनो 2.2.6 में लाइन में ~ / .nanorc ऐसा करने के लिए लगता है

set tabsize 4

टैबस्पेस सेट करने से मुझे त्रुटि मिली: 'अज्ञात ध्वज "टैबस्पेस"


4

भविष्य के दर्शकों के लिए, मेरी / etc / nanorc फ़ाइल में पंक्ति 153 के करीब एक पंक्ति है जो कहती है "सेट टैब 8"। शब्द को टैबस्पेस के बजाय टैब करने की आवश्यकता हो सकती है। जब मैंने 8 को 4 से बदल दिया और लाइन को अनलॉक्ड कर दिया, तो इससे मेरी समस्या हल हो गई।



0

किसी के लिए भी, जो इस पुराने सवाल पर ठोकर खा सकता है ...

एक बात है जो मुझे लगता है कि इस पर ध्यान देने की जरूरत है।

~/.nanorcनैनो के लिए अपने उपयोगकर्ता विशिष्ट सेटिंग्स को लागू करने के लिए उपयोग किया जाता है, इसलिए यदि आप उन फ़ाइलों को संपादित कर रहे हैं जिनके sudo nanoलिए अनुमतियों के उपयोग की आवश्यकता होती है तो यह काम नहीं करने वाला है।

sudoप्रोग्राम का उपयोग करते समय आपकी कस्टम उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइलों का उपयोग नहीं किया जाएगा, क्योंकि आप अपने खाते से प्रोग्राम नहीं चला रहे हैं, इसलिए आपके कॉन्फ़िगरेशन में से कोई भी परिवर्तन ~/.nanorcलागू नहीं होगा।

यदि यह वह स्थिति है जो आप स्वयं में पाते हैं ( अपनी स्वयं की विन्यास सेटिंग्स को चलाने sudo nano और उपयोग करने के लिए ) तो आपके पास तीन विकल्प हैं:

  • दौड़ते समय कमांड लाइन के झंडे का उपयोग करना sudo nano
  • /root/.nanorcफ़ाइल को संपादित करना
  • /etc/nanorcग्लोबल कॉन्फिग फाइल को एडिट करना

ध्यान रखें कि /etc/nanorcएक वैश्विक कॉन्फ़िगरेशन फ़ाइल है और इस तरह यह सभी उपयोगकर्ताओं को प्रभावित करता है, जो कि आपके पास एक बहु-उपयोगकर्ता प्रणाली है या नहीं, इसके आधार पर समस्या हो सकती है।

इसके अलावा, उपयोगकर्ता कॉन्फ़िगर की गई फाइलें वैश्विक को ओवरराइड कर देंगी, इसलिए यदि आप संपादित करना चाहते थे /etc/nanorcऔर ~/.nanorcविभिन्न सेटिंग्स के साथ, जब आप nanoइसे ~/.nanorcचलाते हैं sudo nanoतो यह सेटिंग्स को लोड कर देगा , लेकिन यदि आप चलाते हैं तो यह सेटिंग्स को लोड कर देगा /etc/nanorc

उसी के लिए चला जाता है /root/.nanorcइस स्थान पर आ जाएगी /etc/nanorcजब चल रहा हैsudo nano

जब तक आपके पास बहुत सारे विकल्प न हों, झंडे का उपयोग करना सबसे अच्छा विकल्प है ।

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