如何在 Vim 中突出显示 printf、scanf?

How to highlight printf, scanf in Vim?

我用 Homebrew 安装了 macvim; OS X 版本 10.11.6; macvim 版本:

macvim: stable 8.0-119 (bottled), HEAD

但在编辑 "my file.c".

时,默认情况下不会为 printfscanf 着色

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

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

syn keyword printf scarf

它没有用...(如果我知道默认的 c.vim 文件在哪里,我可以参考它,也许我的问题就可以解决。)

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

不要像 c.vim 那样更改默认的语法高亮文件,而是通过 ~/.vim/after/~/.vim/syntax/ 添加我自己的语法高亮文件是个好习惯吗?

创建 ~/.vim/after/syntax/c.vim 文件(按照 official documentation 中的建议),内容如下:

syn keyword cFunctions printf scanf
hi link cFunctions Function

据我所知,默认的语法规则没有突出显示函数,即使是来自标准库。所以需要自己添加。


syn 命令将 printfscanf 添加到 cFunctions 高亮组。

hi 命令将 cFunctions 组链接到 Function 高亮组,通常由颜色方案定义。如果Function组没有定义,可以自己定义,例如

hi Function term=underline cterm=bold ctermfg=LightGray

Is it a good practice that not to change the default syntax-highlight-file like c.vim, and add my own by ~/.vim/after/ or ~/.vim/syntax/?

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

如果您需要多个库,在C语言编程中,例如GTK2、GTK3、glib、gimp等;您可以将它们全部添加到同一目录 /home/juan/.vim/after/syntax/c/.

否则你只需要 /home/juan/.vim/after/syntax/c.vim