Я работаю над реорганизацией моего .bashrc
. Я переместил свои псевдонимы в .bash_aliases
(источником которого является .bashrc
, но я не могу понять, как включить подсветку синтаксиса для этого файла. Кажется, vim
не может определить, на каком языке этот файл. Он отлично работает для .bashrc
. Есть идеи?
4 ответа
Ответ таков : 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:
Перейти к vim и запустить:
:echo $VIMRUNTIME
Обычно значение будет примерно таким:
/ USR / доли / ВИМ / vim72
Затем отредактируйте (используя root) файл /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).
Вот и все, теперь это должно работать.
Добавьте следующую строку в ~/.vimrc (создайте ее, если она не существует).
au BufNewFile,BufRead .bash_aliases call SetFileTypeSH("bash")
Следите за ответом @ Pharaun для vim 8 и нескольких файлов псевдонимов. Чтобы правильно выделить подсветку, мне нужно было сделать две настройки. Сначала в новом файле .bash_aliases:
# vim: set filetype=bash
А также проверка в моем .vimrc
if has("autocmd")
augroup bashalias
autocmd BufRead,BufNewFile *_aliases set filetype=sh
augroup END
endif
Обратите внимание, что тип файла - это sh, а также подстановочный знак * для нескольких имен файлов.
Не уверен, зачем нужны обе эти настройки. Я попытался использовать только одну настройку, но обе комбинации были необходимы, чтобы подсветка была правильной.