我经常在Ruby和Markdown文件之间切换。有没有一种方法可以让我在打开set spell文件时自动设置*.md,但不能在打开*.rb文件时自动设置?

评论

我找到了,但是我认为它不符合我想要的方式...ajayfromiiit.wordpress.com/2006/06/02/…

robots.thoughtbot.com/vim-spell-checking

#1 楼

为特定文件类型设置选项的最佳方法是使用自动命令。

您可以在.vimrc中添加类似的内容:

autocmd FileType markdown setlocal spell


当缓冲区的文件类型设置为markdown时,此行将触发命令setlocal spell。您还可以根据编辑的文件扩展名使用自动命令,例如:

autocmd BufRead,BufNewFile *.md setlocal spell


有关更多信息,请阅读:h :autocmd:h autocmd-events


EDIT使用自动命令并不是最好的方法。

首先,如果使用自动命令,请记住将它们放在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且在默认情况下已提供Vim随附的ftplugin之后,将源该文件(这种方式您不会丢失已经存在的设置)。

在此文件中,您只需添加:

setlocal spell


这里您需要使用setlocal而不是set来确保设置仅适用于当前缓冲区,而不是所有缓冲区。

一些有趣的相关帮助主题:


:h ftplugin
:h :setlocal


评论


万分感谢!这对我有用:autocmd FileType latex,tex,md,markdown setlocal拼写

–调味麦克博斯
16-3-22在20:16

很高兴对您有用:-)

–statox♦
16-3-22在20:49