我正在使用Twig的Symfony2项目,文件类型为myfile.html.twig
。 Vim不会自动检测语法高亮,因此不应用任何语法。打开文件后,我可以使用:set syntax=HTML
,但在文件之间跳转时很痛苦。vim:persistent:为给定的文件类型设置语法?
有没有办法在vim中为特定文件类型永久设置语法高亮?
我正在使用Twig的Symfony2项目,文件类型为myfile.html.twig
。 Vim不会自动检测语法高亮,因此不应用任何语法。打开文件后,我可以使用:set syntax=HTML
,但在文件之间跳转时很痛苦。vim:persistent:为给定的文件类型设置语法?
有没有办法在vim中为特定文件类型永久设置语法高亮?
您可以使用autocmd
来实现这一目标,即:
autocmd BufNewFile,BufRead *.html.twig set syntax=html
应该工作。
au BufNewFile,BufRead,BufReadPost *.twig set syntax=HTML
并将此行添加到~/.vimrc
以使设置保持不变。
我知道这并不直接回答这个问题,但是这个答案,这是获得语法高亮与枝条/ Symfony的工作的意图,2
我建议你看看https://github.com/beyondwords/vim-twig(不是我) ,其中规定:
我希望这有助于
添加以下行之一的.vimrc
" Set the type for the file type and override if file type
" already has detected
au BufRead,BufNewFile *.html.twig set filetype=html
OR
" Set the type for the file type but do NOT override if file type
" already has detected
au BufRead,BufNewFile *.html.twig setfiletype=html
这是一个比公认的更好的通用答案。如果vim无法检测到文件的类型(并自动提供语法高亮显示),最好设置文件类型而不仅仅是文件的语法。 – mrfred 2017-06-13 18:48:24
'setfiletype'应该是'set filetype' 至少我可以让它工作 – 2017-08-17 15:07:06
这是最简单的情况。通常它可能是复杂的函数来确定语法。不幸的是,它们可能工作不正确如果你有简单的情况,当算法给出错误时,yum需要从一个中排除扩展名,并为这种情况单独编写。例如,我总是获得mac文件的vmasm语法。所以确实是纯粹的GNU汇编程序宏文件。因此,我需要通过命令手动更改语法:每次打开此文件进行编辑时,都需要set syntax = asm。但是完成上面的语法定义之后的程序是正确的
一位朋友也向我指出了这一点。 设置文件类型:'au BufRead,BufNewFile * .html.twig set filetype = twig' 设置语法:'au BufRead,BufNewFile * .html.twig set syntax = HTML' – Bendihossan 2012-07-26 09:27:15
我建议把这行代码放到'〜/ .vim/ftdetect/html.twig.vim'文件(你应该创建它),这是这种自动命令的正确位置。 – xaizek 2012-07-26 09:30:35
@xaizek我明白这是推荐的,但是你有什么想法,为什么它不起作用,如果我把'〜/ .vimrc'而不是'〜/ .vim/ftdetect /'放进去? – 2014-05-26 23:56:11