मैं कुछ पायथन फ़ाइलों को संपादित करने के लिए विम का उपयोग कर रहा हूं और हाल ही में यह स्पोरैडिक रूप से होता है कि बफर को vim के अंदर सहेजने के बाद सिंटैक्स हाइलाइटिंग गायब हो जाती है। मैंने syntax on
और set filetype=python
को रीसेट करने का प्रयास किया लेकिन इसका कोई फायदा नहीं हुआ। मुझे इस समस्या का कोई कारण नहीं है कि इस समस्या का कारण क्या है, इसलिए अभी मेरे पास न्यूनतम नैदानिक जानकारी है। लेकिन क्या किसी ने इससे पहले सामना किया है, या चीजें कहां टूट सकती हैं?फ़ाइल बचत के दौरान सिंटैक्स हाइलाइटिंग यादृच्छिक रूप से गायब हो जाती है
उत्तर
यह कोई समाधान नहीं है, लेकिन टिप्पणियों में लिखना/पढ़ना मुश्किल है।
मेरा मतलब था कि जब मैं अपना खुद का .vimrc
ठीक करना शुरू करता हूं, तो मैं वाक्यविन्यास/हाइलाइटिंग के साथ गड़बड़ कर रहा था, इसलिए मैंने इसे क्यों देखा।
syntax on
/syntax enable
केवल फाइल लोड सामान की तैयारी कर रहा है (au
से BufNewFile/BufRead
में बहुत कुछ जोड़ रहा है)। इसलिए यदि कुछ प्लगइन फ़ाइल लिखते समय वाक्यविन्यास/हाइलाइट सेटिंग्स के साथ गड़बड़ कर रहा है, तो फ़ाइल को सभी "जादू" होने के लिए फिर से लोड किया जाना चाहिए, यह filetype
सेट करने के साथ पर्याप्त नहीं है। :au BufRead
करें और आपको वाक्यविन्यास प्रारंभ करते समय जोड़े गए सभी ऑटोकॉन्मेंड्स दिखाई देंगे। लेकिन फाइल को सभी बसने के लिए लोड किया जाना चाहिए।
इस देखें:>syntax-loading
आप फ़ाइल को फिर से लोड करने के लिए, syntax enable
कोशिश नहीं करना चाहते हैं, मुझे लगता है कि syntax on
लिए अलग है।
या भी :doautocmd filetypedetect BufRead %
करने का प्रयास करें, देखें>autocmd-execute
मैं क्या समस्या का कारण है पता नहीं है, तो यह आपको हो सकता है? यदि आपने कुछ autocommands जोड़े हैं, या अपने रंग/वाक्यविन्यास कर रहे हैं?
अन्यथा, जब तक आपको कोई समाधान न मिल जाए, तो आप शायद को अपने .vimrc
के अंत में जोड़ने का प्रयास कर सकते हैं, उस मामले में augroup
का उपयोग करें।
augroup myResetSyntax
au!
autocmd BufWritePost * syntax enable | doautocmd filetypedetect BufRead "%"
augroup END
अब कुछ समय के बाद मुझे लगता है मदहोश हाइलाइटिंग बल्कि किसी भी रहस्यमय फ़ाइल की बचत के साथ जुड़े बलों की तुलना में से तह के कारण होता है, तो उन्हें आसानी से ठीक * डाल करने के लिए होगा:
यहाँ एक उदाहरण है मेरे vimrc
noremap <F9> <Esc>:syntax sync fromstart<CR>
inoremap <F9> <C-o>:syntax sync fromstart<CR>
और जब भी कुछ खराब होता है तो F9 दबाएं।
- समाधान here
से पता चला तुम भी बस बफर पुन: लोड करके वाक्य रचना को बहाल कर सकते हैं:
:e
आप अपने vimrc पोस्ट कर सकते हैं? – mindvirus
और क्या प्लगइन्स? – Kevin
@mdkess यह काफी लंबा है, मैं इसे पेस्टबिन पर अपलोड करता हूं http://pastebin.com/dggSfKkX – nye17