17

Я работаю над реорганизацией моего .bashrc . Я переместил свои псевдонимы в .bash_aliases (источником которого является .bashrc , но я не могу понять, как включить подсветку синтаксиса для этого файла. Кажется, vim не может определить, на каком языке этот файл. Он отлично работает для .bashrc . Есть идеи?

4 ответа4

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: 
11

Перейти к 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).

Вот и все, теперь это должно работать.

1

Добавьте следующую строку в ~/.vimrc (создайте ее, если она не существует).

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

Следите за ответом @ 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, а также подстановочный знак * для нескольких имен файлов.

Не уверен, зачем нужны обе эти настройки. Я попытался использовать только одну настройку, но обе комбинации были необходимы, чтобы подсветка была правильной.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .