Отключите vim `filetype indent` для определенного типа файла

1841
Antonis Christofides

По моему .vimrcу меня

filetype indent on 

То, как он пытается сделать авто-отступ для yamlфайлов, очень сбивает меня с толку, поэтому я хочу filetype indentотключить его, но только для yamlфайлов, а не для других файлов.

Как мне так сказать по моему .vimrc?

3

2 ответа на вопрос

4
Ingo Karkat

Ответ @ maiki дает правильное решение; если вам нужно сохранить это ~/.vimrc, следующее эквивалентно:

autocmd FileType yaml let b:did_indent = 1 

Если это не сработает, вы также можете попытаться очистить метод indent впоследствии:

autocmd FileType yaml setlocal indentexpr= 

Я по-прежнему предлагаю вам изменить настройки, чтобы их .vimrcможно было легко синхронизировать. Учтите, что вы можете использовать плагины или другие конфигурации (например ~/.gitconfig) в будущем. Существует много подходов для синхронизации конфигурации пользователя между системами; у многих пользователей они есть в центральном (Git) репозитории и используют символические ссылки для установки.

Это не сработало для меня; однако `setlocal indentexpr =` вместо `let b: did_indent = 1` сработало. Antonis Christofides 9 лет назад 1
Вы набрали это или на самом деле вставили .vimrc? Важно, чтобы этот autocmd был определен первым. Ну, в любом случае, вы нашли решение! Я добавил это к своему ответу. Ingo Karkat 9 лет назад 0
То же самое здесь, помещение `let b: did_indent = 1` в` ~ / .vimrc` не работает. Я пытался поставить его до и после `intype on intype плагина ', но ничего не получалось. Однако `autocmd FileType yaml setlocal indentexpr =` сработал. Он должен быть добавлен после отступа `filetype plugin on`. wisbucky 5 лет назад 0
3
maiki

Это должно сделать свое дело

echo 'let b:did_indent = 1' > ~/.vim/indent/yaml.vim 

источник

Я не знаю, работает ли это, но это потребовало бы, чтобы я делал это на всех моих машинах, и не забывайте делать это каждый раз, когда у меня есть новая машина. Не хорошо. Этого должно быть достаточно, чтобы просто скопировать мой `.vimrc`. Antonis Christofides 9 лет назад 0