विम एक अजीब तरीके से मेरी फ़ाइल को हाइलाइट कर रहा है, और मैं यह जानना चाहता हूं कि इस व्यवहार के लिए सिंटैक्स फ़ाइल क्या जिम्मेदार है। मुझे कैसे पता चलेगा कि सिंटैक्स फाइल्स ने क्या लोड किया है?
विम एक अजीब तरीके से मेरी फ़ाइल को हाइलाइट कर रहा है, और मैं यह जानना चाहता हूं कि इस व्यवहार के लिए सिंटैक्स फ़ाइल क्या जिम्मेदार है। मुझे कैसे पता चलेगा कि सिंटैक्स फाइल्स ने क्या लोड किया है?
जवाबों:
यह पता लगाने के लिए कि विम ने कौन सी फाइलें वास्तव में लोड की हैं, निष्पादित करें
:scriptnames
:echo b:current_syntax
। वर्तमान में प्रभावित सिंटैक्स आइटम देखने के लिए, जैसा कि Ingo ने सुझाया है और निष्पादित करें :syntax list
। यदि Ingo नोट किया गया हो तो सिंटैक्स आइटम एक से अधिक सिंटैक्स फ़ाइल से प्रभावी हो सकते हैं।
/usr/share/vim/vim73/filetype.vim
। उपरोक्त आदेश का उपयोग करने के बाद मुझे एहसास हुआ कि यह MacVim के संस्करण का उपयोग कर रहा था ~/Applications/MacVim.app/Contents/Resources/vim/runtime/filetype.vim
। यदि आपके पास MacVim स्थापित है, तो सुनिश्चित करें कि आपने सही फ़ाइल को संशोधित किया है।
/usr/share/vim/vim81/syntax/cf.vim
मेरे लिए)। मैंने एक कस्टम cf.vim स्थापित किया क्योंकि मानक एक दिनांकित है। :scriptnames
दोनों फाइलों को दिखाता है। स्क्रिप्ट सूची में डिफ़ॉल्ट कम है; हालाँकि, पूर्व का उपयोग किया जा रहा है। अगर तुम देखो /usr/share/vim/vim81/syntax/cf.vim
, एक गार्ड है if exists("b:current_syntax") finish endif
। इसलिए, मेरे मामले में, scriptnames
मददगार था, लेकिन मुझे थोड़ा गहरा खुदाई करना पड़ा।
वर्तमान बफ़र के लिए सिंटैक्स के माध्यम से क्वेरी की जा सकती है
:setlocal syntax?
यह आमतौर पर (लेकिन जरूरी नहीं) बफ़र के फ़िलाटाइप ( :setlocal filetype?
) से मेल खाती है ।
एक गहरी नज़र के लिए,
:syntax list
सभी वाक्यविन्यास परिभाषाओं को दर्शाता है (कुछ वाक्यविन्यास में अन्य भाषा के वाक्यविन्यास शामिल हो सकते हैं, उदाहरण java
के html
लिए JavaDoc टिप्पणी अंकन के लिए है)।
आप देख सकते हैं कि फ़िल्टाइप (s) वर्तमान में और किसके द्वारा उपयोग किया जाता है
:verbose set ft ?
फिलाटाइप को संभालने वाला प्लगइन सबसे अधिक संभावना है
:e $VIMRUNTIME\ftplugin