bash - शमबंग लाइन से विम का पता लगाने के लिए कैसे?




vim file-type (3)

इस सामग्री के साथ ~/.vim/ftdetect/node.vim यह फाइल बनाएं

fun! s:DetectNode()
    if getline(1) == '#!/usr/bin/env node'
        set ft=javascript
    endif
endfun

autocmd BufNewFile,BufRead * call s:DetectNode()

कभी-कभी मैं बिना किसी फ़ाइल नाम एक्सटेंशन के स्क्रिप्ट लिखता हूं। उदाहरण के लिए:

#!/usr/bin/env node

console.log('hello world!');

मुझे उम्मीद है कि विम शीबंग लाइन (जैसे #!/usr/bin/env node javascript ) से फ़िलाटाइप का पता लगा सकती है। मुझे filetype.vim में क्या डालना चाहिए?


निम्न में दिए गए निर्देशों का पालन करें :help new-filetype-scripts करें, उपयोगकर्ता रनटाइम में :help new-filetype-scripts फाइल बनाएं। ( ~/.vim ( ~/.vim पर यूनिक्स की तरह सिस्टम), और उसमें निम्न स्क्रिप्ट लिखें।

if did_filetype()
    finish
endif
if getline(1) =~# '^#!.*/bin/env\s\+node\>'
    setfiletype javascript
endif

यदि आप एक प्लगइन में रुचि रखते हैं, तो इसके लिए एक मौजूद है:

https://github.com/vitalk/vim-shebang

इसमें node -> javascript हाइलाइटिंग के लिए एक पैटर्न शामिल है।

AddShebangPattern! javascript ^#!.*\s\+node\>




file-type