Чи є спосіб розмістити коментар у файлі, який буде оброблено vim для встановлення файлів?


30

Наприклад, якщо я хочу, щоб файл з іменем gitconfig(без головного .) був визнаний vim як filetype=gitconfigтакий, чи є спосіб вказати це в коментарі чи щось подібне в самому файлі? Зауважте, я хочу, щоб це працювало в системах, тому змінювати файли запуску vim не бажано.

Відповіді:


45

Це звучить як modelineфункція (див. Он-лайн довідку). У gitconfig ви можете мати моделін, як описано нижче, біля початку або в кінці файлу:

# vi: ft=gitconfig

Це вимагає включення моделей, і оскільки вони можуть становити загрозу безпеці, вони відключені за замовчуванням у багатьох системах.

Інший підхід, який може бути трохи більше роботи - це створити .vimфайл, що містить

au BufRead,BufNewFile */gitconfig setfiletype gitconfig

і залиште його ~/.vim/ftdetectна всіх ваших системах.


Ідеально, моделін - це те, що я шукав. Моделін увімкнено, але, схоже, щось інше в моїх налаштуваннях це заважає. Якщо я поставив запропонований рядок у верхній частині файлу, то після повторного відкриття він set filetype?виявить тип файлу "conf".
Муралі Суріар

Можливо, ви можете використати, :verbose set filetypeщоб побачити, звідки confпоходить значення - я б здогадався десь у налаштуваннях файлових системних файлів vim десь.
jw013

мабуть, це було востаннє встановлено з /usr/share/vim/vim73/filetype.vim. Чому б виявлення файлового типу системного рівня замінило директиву, яку я розмістив у самому файлі?
Муралі Суріар

ти запускав vim як root? якщо так, я думаю, що моделін не завантажуватиметься.
elias

Також перевірте значення modelinesопції. :set modelines?Якщо він встановлений в нуль, він не буде обробляти моделін.
Крістіан Лонг

1

Ви можете створити файл синтаксису і помістити його в share/syntaxкаталог vim (на Debian Lenny це /usr/share/vim/vim71/syntax(ваш дистрибутив може відрізнятися)).

Документація про формат синтаксису Vim знаходиться тут: http://vimdoc.sourceforge.net/htmldoc/syntax.html

Можливо, ви зможете десь знайти в Інтернеті готовий синтаксичний файл, але я залишу це як вправу для вас.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.