2016-12-18 19 views
1

我已经安装了自制的macvim; OS X版本10.11.6;的MacVim版本:如何在Vim中突出显示printf,scanf?

macvim: stable 8.0-119 (bottled), HEAD 

但是当编辑 “我file.c” 它不默认颜色printfscanf

我已经搜索了如何通过创建~/.vim/after/c.vim来添加它们。 (我想通过另一种方式直接编辑默认的c.vim文件,但我不知道它们在哪里)。

在我~/.vim/after/c.vim我写道:

syn keyword printf scarf 

,并没有工作...(如果我知道这里默认c.vim文件,我可以参考它,也许我的问题可能是)

btw,我下载c.vim from vim.org, 但我发现最后编辑的日期是在2010年,如果我想要C11标准版本,我可以在哪里得到一个,如果它很重要(?)。

是不是像c.vim那样改变默认的语法高亮文件并且通过~/.vim/after/~/.vim/syntax/添加我自己的一个好习惯?

+0

默认文件将在'$ VIMRUNTIME'下。 – wincent

回答

4

与以下内容创建~/.vim/after/syntax/c.vim文件(如official documentation推荐):

syn keyword cFunctions printf scanf 
hi link cFunctions Function 

至于我可以看到,默认的语法规则不突出的功能,甚至从标准库。所以你需要自己添加它们。


syn命令添加printfscanfcFunctions突出基团。

hi命令链接cFunctions组到Function高亮组,它通常由colorscheme定义。如果未定义Function组,则可以自己定义它,例如,

hi Function term=underline cterm=bold ctermfg=LightGray 

它是一个很好的做法,不是更改默认的语法高亮文件一样c.vim,并添加自己的~/.vim/after/~/.vim/syntax/

是的,当然。语法文件通常作为包分发。例如,在我的Gentoo Linux /usr/share/vim/vim80/syntax/c.vim上随附app-editors/vim-core包。在下次包升级时,对语法文件的本地修改将被覆盖。

+0

我可以问一下〜/ .vim/syntax/c.vim和〜/ .vim/after/c.vim之间的区别吗?如果这个问题微不足道,就忽略它。 – Niing

+0

@ N1ng,这实际上是一个有趣的问题。 [后目录](http://vimdoc.sourceforge.net/htmldoc/options.html#after-directory)用于包括语法规则在内的不同规则。我无法找到为什么,但'〜/ .vim/after/c.vim'似乎在应用语法高亮之前被处理。 –