Jak zrobić vim detect filetype z linii shebang?
Czasami piszę Skrypty bez rozszerzenia nazwy pliku. Na przykład:
#!/usr/bin/env node
console.log('hello world!');
Mam nadzieję, że Vim wykryje Typ pliku z linii shebang (np. #!/usr/bin/env node
jest javascript
). Co należy umieścić w filetype.vim
?
39
4 answers
Postępując zgodnie z instrukcjami wymienionymi w :help new-filetype-scripts
,
Utwórz plik scripts.vim
w katalogu runtime użytkownika (~/.vim/
w systemach uniksopodobnych) i napisać w nim następujący skrypt:
if did_filetype()
finish
endif
if getline(1) =~# '^#!.*/bin/env\s\+node\>'
setfiletype javascript
endif
34
Author: ib.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-05 02:51:32
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-05 02:51:32
Utwórz ten plik ~/.vim/ftdetect/node.vim
z tą zawartością
fun! s:DetectNode()
if getline(1) == '#!/usr/bin/env node'
set ft=javascript
endif
endfun
autocmd BufNewFile,BufRead * call s:DetectNode()
11
Author: aliva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-28 14:44:03
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-28 14:44:03
Jeśli jesteś zainteresowany wtyczką, istnieje taka możliwość:
Https://github.com/vitalk/vim-shebang
Zawiera wzorzec podświetlania node -> javascript
.
AddShebangPattern! javascript ^#!.*\s\+node\>
1
Author: dhulihan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-14 21:22:59
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-14 21:22:59
Trochę za późno na imprezę, ale vim obsługuje Wykrywanie takich plików JavaScript za Ciebie. I jeszcze trochę. :-)
0
Author: Andri Möll,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-31 07:42:40
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-31 07:42:40