如果filetype == tex

Jak*_* M. 28 vim latex

我想在.vimrc中运行一个命令,以防文件是一个乳胶文件.我想我有一些语法,它不起作用.任何线索?

if &filetype=='tex'
    set spell
endif
Run Code Online (Sandbox Code Playgroud)

abc*_*bcd 28

您可以使用自动命令来实现您想要的效果:

autocmd BufNewFile,BufRead *.tex set spell
Run Code Online (Sandbox Code Playgroud)

  • @ user497208你应该使用`FileType`事件和`:setlocal`:`autocmd FileType tex:setlocal spell`:`FileType`事件使你能够在不同扩展名的文件上设置`:set ft = tex`并获得拼写检查, :setlocal spell`不会改变'spell'选项的全局值,这是新缓冲区的默认值. (12认同)

Cha*_* Oh 26

对于那些想要检查当前文件类型并在编辑时执行某些操作的人,这应该有效:

if (&ft=='c' || &ft=='cpp')
    :!g++ %
endif
Run Code Online (Sandbox Code Playgroud)

  • 我正在尝试使用这样的东西:```let g:tex_flavor='latex' if &ft == "tex" set nonu endif ``` 但它似乎没有效果。 (2认同)

Ory*_*and 11

另一种方法是使用index():

let fts = ['c', 'cpp']
if index(fts, &filetype) == -1
    " do stuff
endif
Run Code Online (Sandbox Code Playgroud)

index()搜索字符串中元素的第一个索引,-1如果未找到则返回.这样,您可以filetype在列表中附加更多值,而不是为每种文件类型添加更多条件.


小智 5

您必须首先手动检测文件类型,因为 vim 仅在获取vimrc.

只需添加以下内容:

`filetype detect`
Run Code Online (Sandbox Code Playgroud)

在你的代码之前。