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