Застосовуйте повну кольорографію vim для скриптів bash, у яких немає лінії шебанг


2

Тож у моєму проекті є багато файлів скриптів bash, які розміщуються, але ніколи не запускаються безпосередньо, тому вони не отримують жодної лінії shebang і не встановлюють біт виконання. Vim їх трохи забарвлює, але не використовує повного забарвлення. Як мені налаштувати vim, щоб надати мені всі нормальні кольори баш для цих файлів?

Редагувати:

Без shebang:

Без шебангу

З shebang:

З шебангом

EDIT 2:

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

EDIT 3:

Набір глобальних змінних vim істотно не відрізняється, як видно з цих зображень (вихід :let g:):

Середовища

Відмінні

Я щось тут втрачаю.

EDIT 4:

Я скинув усе середовище з вікна кольорового кольору (ліворуч) та вікна неправильно кольорового кольору (праворуч), і розрізнив їх, знайшовши це:

60 b:current_syntax       bash   |   61 b:current_syntax       conf

Тож чомусь він вважає, що мої вихідні файли shebangless - це файли conf. Тому мені потрібно розібратися, як зрівняти їх з баштом.


:syntax onви спробували просто увімкнути підсвічування синтаксису? Ви можете додати це до свого, .vimrcщоб він запускався щоразу, коли ви.
Метт Кларк

Підсвічування синтаксису @MattClark увімкнено. Що відбувається, коли я відкриваю файл bash, у якому вгорі немає рядка shebang, я отримую неповну забарвлення. Дивіться мою редакцію щодо зображень, що показують проблему.
ACK_stoverflow

Яку платформу ви використовуєте? Схоже на вікна; це рідний, цигуїн / м'ятний, чи щось інше? Дякую!
cxw

Я використовую Crunchbang, який для більшості цілей - Debian. Vim - 7,3, а моя оболонка - термінатор, з підтримкою 256 кольорів.
ACK_stoverflow

Відповіді:


3

Біжи :setf sh

Ви можете розмістити це вгорі файлів (якщо ви не хочете, щоб не було шебангу):

# vim:ft=sh

Цікаво, що :setf bashвидаляє весь колір з редактора в моїй системі, при цьому :setf shнадає потрібну забарвлення. Але мені дуже цікаво, чи існує більш постійний спосіб змінити свій vim install, щоб використовувати :setf shвиключно для всіх скриптів оболонки?
ACK_stoverflow

2
Команда "setf" не може бути в моделі. Всі моделі можуть зробити це встановити параметри. Ви хочете:# vim:ft=bash
Гептит,

1
Немає bashфайлетипу. Філетип повинен бути sh. Якщо вам потрібно налаштувати підсвічування під баш, покладіть let g:is_bash = 1свою ~/.vimrc.
garyjohn

Позначений як відповідь, тому що я не міг зрозуміти, як зробити filetype.vimвибір shзамість confфайлів скриптів оболонки shebangless. Дякую!
ACK_stoverflow

Тож (звичайно), це все-таки була певна боротьба;) Debian за замовчуванням вимикає modeline - біг :verbose set modeline?підкаже вам, що з цим відбувається. Або видалити set nomodelineз /usr/share/vim/vim73/debian.vimабо додати set modelineв свій власний vimrc. Тоді вищевказаний моделін спрацює.
ACK_stoverflow

0

Покладіть

let g:is_bash      = 1

у вашому .vimrc. Це встановлює тип файлу за замовчуванням для невідомих скриптів оболонки bash. Повне пояснення див. У : довідці ft-bash-синтаксису

Для тих, хто цікавиться внутрішніми послугами, принаймні на моїй установці Vim 7.4, g:is_bashперевіряється автокоманда в $VIM/vim74/filetype.vim, яка встановлюється b:is_bashвідповідно. Потім синтаксичний файл $VIM/vim74/syntax/sh.vimтестується, b:is_bashщоб вирішити, як виділити файл.


Не працювало. Я також спробував додати його /usr/share/vim/vim73/syntax/sh.vim, але там теж немає кісток.
ACK_stoverflow

В /usr/share/vim/vim73/filetype.vimє функція , яка викликається SetFileTypeSHв рядку 1760, я думаю , що , можливо , доведеться змінити це , але vimscript дає мені головний біль.
ACK_stoverflow

Чи бажаєте ви спробувати оновити до Vim 7.4 (остання версія) і побачити, чи допоможе це? У мене більше немає 7,3 встановлення.
cxw

Що ж, цього року мені потрібно оновити цілу ОС, що не буде весело, оскільки Крончбанг помер. Я вдячний за вашу допомогу, але я краще не встановлю інший vim саме для цього.
ACK_stoverflow

Це справедливо. Що для цього варто, stackoverflow.com/questions/11044378 припускає, що у інших виникли проблеми. build.opensuse.org/package/view_file/openSUSE:Factory/vim/… - це патч до sh.vim, який може допомогти. Удачі!
cxw
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.