Как включить проверку орфографии для определенных типов файлов?

11

Я часто переключаюсь между файлами Ruby и Markdown. Есть ли способ, которым я могу set spellавтоматически установить, когда я открываю *.mdфайл, но не когда я открываю *.rbодин?

Соус МакБосс
источник
Я нашел это, но я не думаю, что это работает так, как я хочу ... ajayfromiiit.wordpress.com/2006/06/02/…
Соус МакБосс

Ответы:

14

Лучший способ установить опцию для определенного типа файла - использовать автокоманды.

Здесь вы можете добавить что-то подобное в свой .vimrc:

autocmd FileType markdown setlocal spell

Эта строка будет вызывать команду , setlocal spellкогда Filetype буфера устанавливается как уценка. Вы также можете использовать автокоманду, основанную на расширении редактируемого файла, например:

autocmd BufRead,BufNewFile *.md setlocal spell

Для получения дополнительной информации вы должны прочитать :h :autocmdи :h autocmd-events.


РЕДАКТИРОВАТЬ Использование автокоманд не самый лучший способ сделать это.

Во-первых, если вы используете автокоманды, не забудьте поместить их в augroup:

augroup markdownSpell
    autocmd!
    autocmd FileType markdown setlocal spell
    autocmd BufRead,BufNewFile *.md setlocal spell
augroup END

Таким образом, если вы используете исходный код vimrc несколько раз, автокоманды не будут суммироваться и выполняться несколько раз.

Теперь лучшим решением будет использование ftplugin. Для этого вы хотите создать файл ~/.vim/after/ftplugin/markdown.vim.

Этот файл будет получен, когда для типа файла буфера задано значение markdownи после того, как исходный файл ftpluginVim поставляется по умолчанию (таким образом, вы не теряете уже существующие настройки).

В этом файле вы можете просто добавить:

setlocal spell

Здесь вам нужно использовать setlocalвместо того, setчтобы убедиться, что настройки будут применяться только к текущему буферу, а не ко всем буферам.

Некоторые интересные связанные разделы справки:

statox
источник
4
Большое спасибо! Это сработало для меня:autocmd FileType latex,tex,md,markdown setlocal spell
Соус McBoss
Я рад, что это было полезно для вас :-)
statox