我想在 .vimrc 文件中针对 LaTeX 文件运行一个命令。我认为语法有问题,它不起作用。有任何线索吗?
if &filetype=='tex'
set spell
endif
autocmd BufNewFile,BufRead *.tex set spell
对于那些想要检查当前文件类型并在编辑时执行某些操作的人,可以尝试以下方法:
if (&ft=='c' || &ft=='cpp')
:!g++ %
endif
if &ft == "tex"
set nonu
endif ```
但它似乎没有任何效果。
- Eduardo Reis另一种方法是使用index()
:
let fts = ['c', 'cpp']
if index(fts, &filetype) == -1
" do stuff
endif
index()
搜索字符串中元素的第一个索引,如果未找到则返回-1
。这样你就可以只将更多的 filetype
值附加到列表中,而不需要为每个文件类型添加更多条件。
你需要手动检测文件类型,因为只有在加载 vimrc
后,vim 才会自动检测文件类型。
只需添加以下内容:
`filetype detect`
在您的代码之前。
补充一下,使用索引。使用ft快速检查文件类型的快捷方式。
更新:
if index(['tex'], &filetype) != -1
echom "this is latex filetype!"
endif
FileType
事件和:setlocal
命令:autocmd FileType tex :setlocal spell
。FileType
事件能让你在文件具有不同扩展名时执行:set ft=tex
命令实现拼写检查,而:setlocal spell
命令则不会改变全局的'spell'选项数值,从而保留新缓冲区的默认设置。 - ZyXFileType
事件:autocmd FileType tex : ...
。 - Grzegorz Wierzowiecki*
号。 - Eric HodonskyFileType
可以使我的帮助页面也得到拼写检查,因此我选择了 Loren 的答案。 - Forethinker