我的.vimrc
中有以下内容syntax on
filetype plugin indent on # Thanks to Jeremy
我跑
vim ~/.vimrc
我得到了正确的语法突出显示。
我在.vimrc中提供了很多文件。我的.vimrc对我来说就像是一个路线图,我在
中导航CTRL-W f
当我导航到我采购的文件时出现问题:无颜色。
我的所有源文件在其PATH中都包含单词Vim。 有可能在解决问题时使用这一事实。
如何为源文件自动提供语法高亮显示?
答案 0 :(得分:11)
有问题的文件是否以“.vim”结尾?如果没有,那么vim的文件类型检测可能无法确定这些文件包含vim-script。您可以重命名文件以使它们以.vim结尾,也可以添加自动命令以适当地设置文件类型。
要执行后者,您可以将以下内容添加到.vimrc:
au! BufNewFile,BufRead PATTERN set filetype=vim
将“PATTERN”替换为与相关文件匹配的文件模式。
修改强>
请参阅:help autocmd-patterns
了解模式的工作原理:
The file pattern {pat} is tested for a match against the file name in one of
two ways:
1. When there is no '/' in the pattern, Vim checks for a match against only
the tail part of the file name (without its leading directory path).
2. When there is a '/' in the pattern, Vim checks for a match against the
both short file name (as you typed it) and the full file name (after
expanding it to a full path and resolving symbolic links).
特别注意这个例子:
Note: To match part of a path, but not from the root directory, use a '*' as
the first character. Example: >
:autocmd BufRead */doc/*.txt set tw=78
This autocommand will for example be executed for "/tmp/doc/xx.txt" and
"/usr/home/piet/doc/yy.txt". The number of directories does not matter here.
在您的情况下,您可能需要以下内容:
au! BufNewFile,BufRead */Vim/* set filetype=vim
答案 1 :(得分:3)
为了让vi认为我的jQuery( .jq)文件实际上是javascript( .js)我做了: -
创建和/或编辑您的vimrc文件...
e@dev3:~$ vi ~/.vimrc
添加以下文字(按i插入)...
if has("syntax")
syntax on
filetype on
au BufNewFile,BufRead *.jq set filetype=javascript
endif
保存vimrc文件......
[esc]:wq[enter]
此外,要查找支持的文件类型,请查看filetype.vim ...
e@dev3:~$ sudo locate filetype.vim
/usr/share/vim/vim72/filetype.vim
e@dev3:~$ sudo grep "\.js[, ]" `locate filetype.vim`
au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx setf javascript
...文件类型是setf arg ...
e@dev3:~$ sudo grep "\.js[, ]" `locate filetype.vim` | cut -d " " -f 4
javascript
玩得开心。
答案 2 :(得分:1)
您提供的文件的扩展名是什么?扩展是Vim检测突出显示它的语法的常用方法,对于源代码文件(vimscript),它应该是.vim。如果您只看到源文件的问题,而不是其他任何文件的问题,那听起来并非如此。
答案 3 :(得分:0)
一个显而易见的问题是,您所采购的文件中没有说“语法关闭”的行吗?
答案 4 :(得分:0)
可能是:
filetype on
对第一个进行排序,第二个可以使用基于文件扩展名的autocmds进行修复。