दिलचस्प पोस्ट
एक स्ट्रिंग के भीतर एक निर्दिष्ट वर्ण के सभी अनुक्रमणिका खोजना जावा के साथ सेलेनियम वेबड्रायवर का उपयोग करके किसी ड्रॉपडाउन सूची से एक आइटम कैसे चुन सकता है? सी ++ में वर्तमान समय और तारीख कैसे प्राप्त करें? किसी डेटा.फ्रेम की पंक्तियों को दोहराएं सी #: गतिशील रनटाइम डाली UITextField के लिए केवल अल्फ़ान्यूमेरिक वर्णों की अनुमति दें पहचानकर्ताओं में 😃 (और अन्य यूनिकोड वर्ण) g ++ द्वारा अनुमत नहीं हैं मैं सी # में अपने नियंत्रण में चलती प्रभाव कैसे जोड़ सकता हूं? जावा एफएक्स 2 और अंतर्राष्ट्रीयकरण matplotlib: एक पंक्ति पर अलग-अलग बिंदुओं के लिए मार्कर सेट करें कस्टम अंगुलियोज निर्देशों के लिए 'प्रतिस्थापन' सुविधा का उपयोग कैसे करें? मैं एक JAR फ़ाइल को एक EXE फ़ाइल में कैसे रूपांतरित कर सकता / सकती हूं? क्या XAML में कैनवास के बच्चों की संपत्ति बाँधना संभव है? कुकी-मैनेजर का उपयोग करते हुए httpUrlConnection में कुकीज़ कैसे प्रबंधित करें स्प्रिंगएमवीसी में @ रिस्पॉन्सबॉडी का उपयोग करते हुए जेसनओबजेक्ट लौट रहा है

अजगर फ़ाइलों को संपादित करते समय लाइनों की शुरुआत में टिप्पणियां नहीं डालने के लिए vim को कॉन्फ़िगर कैसे करें

जब मैं पाइथन फ़ाइलों को संपादित करते समय विम में एक खाली पंक्ति पर एक # में सम्मिलित मोड जोड़ता हूं, तो वीआईएम लाइन की शुरुआत में # स्थानांतरित करता है, लेकिन मैं # को उस टैब स्तर पर डाला जाना चाहूंगा जहां मैंने इसे दर्ज किया था

उदाहरण के लिए, जब इसे वीम में लिखते हैं

for i in range(10): # 

# वहां नहीं रहता जहाँ मैंने इसे दर्ज किया था।

इसे इतना पसंद किया गया है, विम द्वारा।

 for i in range(10): # 

क्या किसी को वीआईएम में कॉन्फ़िगरेशन आइटम का पता है जो इसे बदल देगा?

यदि यह मदद करता है, तो मैं Ubuntu 8.10 का उपयोग कर रहा हूँ

वेब के समाधान से एकत्रित समाधान "अजगर फ़ाइलों को संपादित करते समय लाइनों की शुरुआत में टिप्पणियां नहीं डालने के लिए vim को कॉन्फ़िगर कैसे करें"

मुझे यहां एक उत्तर मिला http://vim.wikia.com/wiki/Restoring_indent_after_typing_hash

ऐसा लगता है कि विम स्मार्ट इंडेंट ऑप्शन समस्या का कारण है। ऊपर दिए संदर्भित पेज में काम-ए-राउंड का वर्णन किया गया है, लेकिन स्मार्टडेंट में मदद करने के बाद ही वोम में (: स्मार्ट इंडेंट को सहायता), मैंने स्मार्टंडेंट के बजाय सिंडेंट की कोशिश करने का फैसला किया।

मैं बदल दिया

 set smartindent 

साथ में

 set cindent 

मेरी .vimrc फ़ाइल में

और अब तक यह पूरी तरह से काम कर रहा है।

इसके बदले में '<<' और '>>' के व्यवहार को तय किया गया था जिसमें अजगर की टिप्पणियां शामिल हैं।

Smartindent और cindent के लिए विम सहायता में इंडेंटेशन के लिए और अधिक कॉन्फ़िगरेशन विकल्प और जानकारी हैं (: स्मार्टंडेंट और सहायता सिंडेंट सहायता)।

@PolyThinker हालांकि मुझे लगता है कि प्रतिक्रिया इस सवाल का एक बहुत, मेरी राय में यह एक अच्छा समाधान नहीं है संपादक अभी भी सोचता है कि इसे छोड़कर सभी तरह से इंडेंट किया जाना चाहिए – उस पंक्ति को = है, जो एक हैश से शुरू होता है या धक्का देकर == को दबाकर जांचें, जबकि उसमें टिप्पणियों के साथ कोड का एक ब्लॉक दोहराव के लिए हाइलाइट किया गया है।

मैं दृढ़ता से filetype indent on अनुशंसा filetype indent on , और set smartindent filetype indent on हटा दें और अपने vimrc से set autoindent (या set cindent ) पंक्ति set cindent करें किसी अन्य (एपपरेन्टली डेविड बस्टोस) हमारे लिए एक पूर्ण इंडेंटेशन पार्सर लिखने के लिए पर्याप्त था; यह $ VIMDIRECTORY / indent / python.vim पर स्थित है

(पॉल के cindent समाधान शायद अजगर के लिए काम करता है, लेकिन पर filetype indent on अधिक आम तौर पर उपयोगी है।)

मेरे पास निम्न पंक्तियां हैं। Vimrc, डिफ़ॉल्ट रूप से मेरे उबुंटू 8.10 के साथ स्थापित होने लगता है

 set smartindent inoremap # X^H# set autoindent 

और मैं समस्या का पालन नहीं करते। शायद आप यह कोशिश कर सकते हैं (ध्यान दें कि ^ H को Ctrl-V Ctrl-H द्वारा दर्ज किया जाना चाहिए)

# के unindenting का मेरा समाधान:

यदि आप सिंडेंट का उपयोग करते हैं, तो पहचान लें कि यह सी और सी ++ कोडन के लिए डिज़ाइन किया गया है। यहां, एक # मतलब है कि आप #DEFINE या #MACRO () बना रहे हैं, इसलिए व्यवहार सही है लेकिन अन्य भाषाओं के लिए जहां # एक टिप्पणी है, यह परेशान है।

निम्नलिखित मेरे लिए काम किया:

 " cindent enable specific indenting for C code " set cin nocin set cin " cinkeys The default cinkeys causes leading # to unindent to column 0. " To prevent this, remove the 0# from the definition. " set cinkeys=0{,0},0),:,0#,!^F,o,O,e - default set cinkeys=0{,0},0),:,!^F,o,O,e 

यह 'smartindent' सुविधा के कारण होता है यदि आपके पास है :set smartindent को अपने .vimrc में :set smartindent आपको इसे निकालना होगा।

कुछ अन्य उत्तर उपयोगी थे, लेकिन जब '#' पहला चरित्र है, तो विम को एक पंक्ति को फिर से बदलने से रोकने के लिए कोई भी पर्याप्त नहीं था। पॉलीटिंकर का जवाब मेरे लिए काम नहीं करता है, लेकिन उसने एक सुराग दिया था कि '#' को एक वर्ण डालें, फिर #, फिर अतिरिक्त वर्ण को हटा दें और कर्सर को जहां यह होना चाहिए वहां पर डाल दिया जाए। यह मानचित्रण है जो ऐसा करता है:

 inoremap # X#<left><backspace><right> 

यह आवश्यक है क्योंकि विम के सिंटेक्स पैकेज '#' को विशेष वर्ण के रूप में मानते हैं, चाहे कितने विकल्प सेट हो जाएं। मैं चाहता हूं कि '#' के साथ शुरू हुई एक पंक्ति किसी अन्य चरित्र के साथ शुरू होने वाली लाइन के समान हो। मैंने पाया सबसे विश्वसनीय समाधान उपरोक्त मानचित्रण है, जो वास्तव में लाइन के पहले अक्षर को बदलता है

नोट: मैंने इस मैपिंग को I#<esc> चलने के बाद समस्याओं का कारण पाया है और फिर "।" पिछले सम्मिलन को फिर से करना मुझे अभी तक एक समाधान नहीं मिला है

मेरा विम विन्यास ऐसा नहीं करता है आप Python.vim स्क्रिप्ट को इस लिंक से उपलब्ध कर सकते हैं: http://www.vim.org/scripts/script.php?script_id=790

मैंने ~/.vimrc से set smartindent को हटा दिया है लेकिन यह अभी भी स्मार्टंडेंट को अक्षम नहीं करता है जब मैंने एक .py फ़ाइल खोला और भाग गया :set smartindent? यह smartindent दिखाया

इसे चालू करता है कि ~/.vimrc में और नीचे यह पंक्ति थी:

 autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class ^^^^^^^^^^^ 

एक बार जब मैंने उस पंक्ति से "स्मार्ट इंडेंट" हटा दिया, तो आखिरकार स्मार्ट इंडेंट को अक्षम कर दिया गया और मेरी टिप्पणियां ठीक से फिर से इंडेंट कर दी गईं।