Я часто переключаюсь между файлами Ruby и Markdown. Есть ли способ, которым я могу set spell
автоматически установить, когда я открываю *.md
файл, но не когда я открываю *.rb
один?
Я часто переключаюсь между файлами Ruby и Markdown. Есть ли способ, которым я могу set spell
автоматически установить, когда я открываю *.md
файл, но не когда я открываю *.rb
один?
Ответы:
Лучший способ установить опцию для определенного типа файла - использовать автокоманды.
Здесь вы можете добавить что-то подобное в свой .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
и после того, как исходный файл ftplugin
Vim поставляется по умолчанию (таким образом, вы не теряете уже существующие настройки).
В этом файле вы можете просто добавить:
setlocal spell
Здесь вам нужно использовать setlocal
вместо того, set
чтобы убедиться, что настройки будут применяться только к текущему буферу, а не ко всем буферам.
Некоторые интересные связанные разделы справки:
autocmd FileType latex,tex,md,markdown setlocal spell