Как включить подсветку синтаксиса для .bash_aliases в vim?


19

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

Ответы:


12

Перейти к vim и запустить:

:echo $VIMRUNTIME

Обычно значение будет примерно таким:
/ usr / share / vim / 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).

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


Отлично! Это решило мою проблему.
Мэтью

5
Вы не должны редактировать дистрибутив vim (файлы в / 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: 

и / или добавьте моделину в ваш bash-файл vimdoc.sourceforge.net/htmldoc/options.html#modeline
matthias krull

@ Муген Кеничи - О, хороший улов! Я никогда не использую моделин, но я видел это в файлах раньше.
Фарон

3
Это очень помогло мне, спасибо, ребята. Одна вещь, которую я должен был сделать, это то, что я должен был установить тип файла sh вместо bash, но я должен, вероятно, просто найти хороший файл bash vim вместо этого, так как это решило бы и мою проблему: p
icco

Мой VIM 7.3 от cygwin также не знает о "filetype = bash". Если вы читаете файл filetype.vim, «sh» используется как тип файла для всех других шаблонов bash.
Богдан Калмак

Несмотря на то, что я считаю .vimrcредактирование более надежным, модели VIM просто великолепны! Благодарю.
4wk_

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

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


Я использую vim 8, но мне не нужна моделин (# vim ...). Просто установите тип файла sh в моем vimrc делает свое дело. Каким-то образом тип файла должен быть не bashпросто sh.
Цзинхао Ши
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.