Як увімкнути підсвічування синтаксису для .bash_aliases in 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

@Mugen Kenichi - Ой хороший лов! Я ніколи не використовую моделін, але раніше це бачив у файлах.
Pharaun

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

Мій VIM 7.3 від cygwin також не знає про "філетип = баш". Якщо ви читаєте через 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

Зауважте, тип файлу - ш , а також символ * для декількох файлів.

Не впевнений, для чого потрібні обидва ці налаштування. Я намагався використовувати лише одну настройку, але обидва комбо потрібні, щоб підсвічування було правильним.


Я використовую vim 8, але мені не потрібен моделін (# vim ...). Просто встановіть тип файлу, щоб sh у моєму vimrc робить трюк. Як-небудь тип файлу повинен бути не bashпросто sh.
Jinghao Shi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.