Таким образом, в моем проекте есть много файлов сценариев bash, которые исходят, но никогда не запускаются напрямую, поэтому они не получают строки shebang и не устанавливают бит выполнения. Vim красит их немного, но не использует полную раскраску. Как настроить vim, чтобы получить все нормальные цвета bash для этих файлов?

РЕДАКТИРОВАТЬ:

Без шебанга

Без шебанга

С Шебангом:

С Шебанг

РЕДАКТИРОВАТЬ 2:

Ниже приведен ответ, который работает для изменений в файлах, и я пойду с этим, если это все, что я могу получить, но мне бы очень хотелось изменить файл конфигурации или что-то еще в моей установке vim, чтобы что я всегда получаю полные цвета "с шебанг", даже когда шебанга нет. Где-то должен быть файл, который определяет неполную окраску, которую я могу просто заменить файлом, определяющим полную окраску.

РЕДАКТИРОВАТЬ 3:

Набор глобальных переменных vim существенно не отличается, как видно на этих изображениях (вывод :let g::

Среды

сравнить при

Я здесь в растерянности.

РЕДАКТИРОВАТЬ 4:

Я выкинул всю среду из правильно окрашенного окна (слева) и неправильно окрашенного окна (справа) и разошелся по ним:

60 b:current_syntax       bash   |   61 b:current_syntax       conf

Так что почему-то он считает, что мои исходные файлы без шебангов являются файлами conf. Поэтому мне нужно выяснить, как сопоставить их с bash вместо этого.

2 ответа2

2

Выполнить :setf sh

Возможно, вы захотите поместить это вверху файлов (если вы не хотите шебанг):

# vim:ft=sh
0

Положил

let g:is_bash      = 1

в вашем .vimrc . Это устанавливает bash тип файла по умолчанию для неизвестных сценариев оболочки. См. Полное объяснение в :help ft-bash-syntax

Для тех, кто интересуется внутренними компонентами , по крайней мере на моей установке Vim 7.4, g:is_bash тестируется в автокоманде в $VIM/vim74/filetype.vim , которая устанавливает b:is_bash соответственно. Синтаксический файл $VIM/vim74/syntax/sh.vim затем проверяет b:is_bash чтобы решить, как выделить файл.

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