मैं vim में .bash_aliases के लिए सिंटैक्स हाइलाइटिंग को कैसे सक्षम करूं?


19

मैं अपने पुनर्गठन पर काम कर रहा हूं .bashrc। मैंने अपने उपनामों को स्थानांतरित कर दिया .bash_aliases(जो कि इसके द्वारा खट्टा है .bashrc, लेकिन मैं यह पता नहीं लगा सकता कि इस फाइल के लिए वाक्य रचना हाइलाइटिंग को कैसे सक्षम किया जाए। vimलगता है कि यह पता लगाने में असमर्थ है कि फ़ाइल किस भाषा में है। यह ठीक काम करती है .bashrc। किसी भी विचार?

जवाबों:


12

विम पर जाएं और चलाएं:

:echo $VIMRUNTIME

आमतौर पर मान कुछ इस प्रकार होगा:
/ usr / share / vim / vim72
तब संपादित करें (रूट का उपयोग करके) फ़ाइल /usr/share/vim/vim72/filetype.vim
bashrc के लिए खोजें।
आपको एक लाइन मिलेगी जो इस तरह दिखती है:

au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,*.bash,*.ebuild call SetFileTypeSH("bash")


पंक्ति संपादित करें और उसमें अपना फ़ाइल नाम (.bash_aliases) जोड़ें।

बस, अब यही काम करना चाहिए।


उत्तम! इससे मेरी समस्या हल हो गई।
मैथ्यू

5
आपको विम वितरण (/ usr / share / vim में फ़ाइलें) को संपादित नहीं करना चाहिए। जब आप vim अपडेट करते हैं, तो आपके परिवर्तन अधिलेखित हो सकते हैं। इसके बजाय, आपको अपनी स्वयं की स्क्रिप्ट बनानी चाहिए जो ऐसा ही करती है (या उस लाइन को आपके vimrc में जोड़ देगी)।
idbrii

11

इसका उत्तर इस प्रकार है: vimdoc - setf, लेकिन आपको एक हड्डी फेंकने के लिए, यदि आप चाहते हैं कि सिंटैक्स और सिंटैक्स आपको काम करने के लिए हाइलाइटिंग दें:

  :setf bash

एक और अधिभोग जो मुझे तब महसूस हुआ जब मैं एक और VIM सवाल का जवाब दे रहा था कि आप इस अनुभाग को अपनी .vimrc फ़ाइल में भी जोड़ सकते हैं और यह स्वचालित रूप से .bash_aliases फ़ाइल के लिए हाइलाइटिंग को सक्षम कर देगा , जिसे आप किसी मॉडल की आवश्यकता के बिना या मैन्युअल रूप से संपादित किए बिना संपादित कर सकते हैं। हर बार जब आप फ़ाइल खोलते हैं तो उसमें setf bash टाइप करें ।

if has("autocmd")
  augroup bashalias
    autocmd BufRead,BufNewFile .bash_aliases set filetype=bash
  augroup END
endif

तीसरी बात यह है कि नीचे टिप्पणी में मुगन केनिची के रूप में, आप .bash_alias फ़ाइल में एक मॉडल भी जोड़ सकते हैं :

# vim: set filetype=bash: 


@Mugen Kenichi - ओह अच्छा पकड़ वहाँ! मैं कभी भी मॉडल का उपयोग नहीं करता, लेकिन मैंने इसे पहले फाइलों में देखा है।
फरानुन २०'१०

3
यह वास्तव में मुझे बहुत मदद मिली, धन्यवाद दोस्तों। एक चीज जो मुझे करनी थी, क्या मुझे बैश के बजाय
शेट करने के लिए फिल्टाइप

साइबरविन से मेरा VIM 7.3 भी "filetype = bash" के बारे में नहीं जानता है। यदि आप filetype.vim के माध्यम से पढ़ते हैं, तो "sh" को अन्य सभी बैश पैटर्न के लिए filetype के रूप में उपयोग किया जाता है।
बोगदान कैलमैक

इस तथ्य के बावजूद कि मुझे लगता है कि .vimrcसंपादन अधिक विश्वसनीय है, वीआईएम मॉडल सिर्फ भयानक हैं! धन्यवाद।
4wk_

1

निम्नलिखित लाइन को ~ / .vimrc में जोड़ें (इसे बनाएं यदि यह मौजूद नहीं है)।

au BufNewFile,BufRead .bash_aliases call SetFileTypeSH("bash")

0

Vim 8 और एकाधिक उपनाम फ़ाइलों के लिए @ Pharaun के उत्तर का अनुसरण करें। हाइलाइटिंग को सही करने के लिए मुझे दो सेटिंग्स करनी थीं। पहली बार नई .bash_aliases फ़ाइल में:

# vim: set filetype=bash

साथ ही मेरे .vimrc में चेक

if has("autocmd")
  augroup bashalias
    autocmd BufRead,BufNewFile *_aliases set filetype=sh
  augroup END
endif

ध्यान दें कि फिलाटाइप शॉ के साथ-साथ कई फ़ाइलनामों के लिए * वाइल्डकार्ड है।

निश्चित नहीं है कि इन दोनों सेटिंग्स की आवश्यकता क्यों है। मैंने सिर्फ एक सेटिंग का उपयोग करने की कोशिश की, लेकिन हाइलाइटिंग सही होने के लिए दोनों कॉम्बो की आवश्यकता थी।


मैं vim 8 का उपयोग करता हूं, लेकिन मुझे मॉडलइन (# vim ...) की आवश्यकता नहीं है। बस मेरे vimrc में चाल करने के लिए filetype सेट करता है चाल। किसी भी तरह फिल्माईप bashकेवल लेकिन नहीं होना चाहिए sh
जिंगहो शी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.