लगातार: किसी दिए गए फ़ाइल प्रकार के लिए सिंटैक्स सेट करें?


103

मैं एक Symfony2 परियोजना पर काम कर रहा हूं जो Twig का उपयोग करता है, और फ़िलेपेट्स हैं myfile.html.twig। विम स्वचालित रूप से हाइलाइटिंग सिंटैक्स का पता नहीं लगाता है और इसलिए कोई भी लागू नहीं होता है। मैं :set syntax=HTMLफ़ाइल खोलने के बाद उपयोग कर सकता हूं, लेकिन फ़ाइलों के बीच कूदते समय यह दर्द होता है।

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

जवाबों:


114

आप इसे autocmdपूरा करने के लिए उपयोग कर सकते हैं , अर्थात:

augroup twig_ft
  au!
  autocmd BufNewFile,BufRead *.html.twig   set syntax=html
augroup END

कार्य करना चाहिए।


4
एक दोस्त ने मुझे यह बताया। au BufRead,BufNewFile *.html.twig set filetype=twigau BufRead,BufNewFile *.html.twig set syntax=HTML
फ़िलाटाइप

27
मैं इस पंक्ति को ~/.vim/ftdetect/html.twig.vimफ़ाइल करने के लिए सुझाव दूंगा (आपको इसे बनाना चाहिए), जो ऐसे ऑटोकॉमैंड्स के लिए सही जगह है।
xaizek

@xaizek मैं समझता हूं कि यह अनुशंसित है, लेकिन क्या आपको पता है कि अगर मैं ~/.vimrcइसके बजाय काम करता हूं तो यह मेरे लिए काम क्यों नहीं करता है ~/.vim/ftdetect/?
Haralan ट्रांसफॉर्मर

2
@ हरलनदोब्रेव, यह शायद इस लाइन के बाद परिभाषित एक अन्य ऑटोकॉमैंड द्वारा अधिलेखित हो जाता है। :autocmd BufNewFile,BufRead *.html.twigसभी पंजीकृत ऑटोकॉमैंड को देखने के लिए विम के अंदर चलाएं (केवल BufNewFileऔर केवल अलग-अलग घटनाओं के साथ भी प्रयास करें BufRead)। का आउटपुट भी चेक करें :verbose set syntax?
xaizek

1
इस समाधान को खोजना कितना आसान था, मुझे लगता है कि विम विकी मौजूद नहीं था
जारेड बीच

59

निम्नलिखित में से एक को अपने पास जोड़ें .vimrc:

" Set the filetype based on the file's extension, overriding any
" 'filetype' that has already been set
au BufRead,BufNewFile *.html.twig set filetype=html

या

" Set the filetype based on the file's extension, but only if
" 'filetype' has not already been set
au BufRead,BufNewFile *.html.twig setfiletype html

6
यह स्वीकार किए जाते हैं की तुलना में एक बेहतर सामान्य उत्तर है। यदि विम फ़ाइल के प्रकार का पता नहीं लगा सकता है (और स्वचालित रूप से सिंटैक्स हाइलाइटिंग प्रदान करता है), तो फ़ाइल के सिंटैक्स के बजाय फ़िलाटाइप को सेट करना बेहतर है।
जुआर

1
setfiletypeset filetypeकम से कम यही होना चाहिए कि मैं इसे कैसे बना सकता हूं
dau_sama

1
@dau_sama setfiletype=htmlमान्य सिंटैक्स नहीं है; मैंने जवाब तय कर दिया है। ध्यान दें कि setfiletype htmlऔर set filetype=htmlअलग-अलग चीजें करें, जैसा कि उत्तर में बताया गया है।
बिद्दाम

10
au BufNewFile,BufRead,BufReadPost *.twig set syntax=HTML

और ~/.vimrcसेटिंग्स को लगातार बनाने के लिए इस लाइन को जोड़ें ।


2

मुझे पता है कि यह सीधे सवाल का जवाब नहीं देता है, हालांकि यह सवाल के इरादे का जवाब देता है, जो कि ट्विग / सिम्फनी 2 के साथ काम करने वाले वाक्यविन्यास को उजागर करना है

मेरा सुझाव है कि आप https://github.com/beyondwords/vim-twig (मेरा नहीं) की जाँच करें , जो प्रदान करता है:

  • * .html.twig के लिए वाक्य रचना हाइलाइटिंग फ़ाइल,
  • उसी के लिए फ़ाइल प्रकार का पता लगाना, और
  • फ़ाइल प्रकार प्लगइन, आपको संपादन करते समय आवश्यक विभिन्न सेटिंग्स को संशोधित करने की अनुमति देता है। *

आशा है कि ये आपकी मदद करेगा

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