版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SYNTAX*syntax.txt* For Vim version 6.4. 最近更新: 2006年3月 VIM 参考手册 by Bram Moolenaar 译者: Willis 语法高亮 *syntax* *syntax-highlighting* *coloring*语法高亮使得 Vim 可以用不同的字体或颜色显示文本的不同部分。这些部分可以是特定的关键字,或者匹配某模式的文本。Vim 不会分析整个文件 (为了保持快速),所以高亮功能有其限制。词法高亮或者是一个更合适的名字,但既然大家都使用语法高亮,我们也就如此称呼。Vim 支持所有终端上的语法高亮。但因为多数普通的终端只有有限的高亮
2、的选择,GUI 版本 gvim 的语法高亮的效果最好。用户手册里:| HYPERLINK /xbzhou/blog/archives/vimmanual/usr_06.html l usr_06.txt usr_06.txt| 介绍语法高亮。| HYPERLINK /xbzhou/blog/archives/vimmanual/usr_44.html l usr_44.txt usr_44.txt| 介绍如何写语法文件。1. 快速入门 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :syn-qstart :syn-qstar
3、t|2. 语法文件 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :syn-files :syn-files|3. 语法载入过程 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l syntax-loading syntax-loading|4. 语法文件附注 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :syn-file-remarks :syn-file-remarks|5. 定义语法
4、| HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :syn-define :syn-define|6. :syntax 参数 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :syn-arguments :syn-arguments|7. 语法模式 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :syn-pattern :syn-pattern|8. 语法簇 | HYPERLINK /xbzh
5、ou/blog/archives/vimmanual/syntax.html l :syn-cluster :syn-cluster|9. 包含语法文件 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :syn-include :syn-include|10. 同步 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :syn-sync :syn-sync|11. 列出语法项目 | HYPERLINK /xbzhou/blog/archives/vimmanual
6、/syntax.html l :syntax :syntax|12. Highlight 命令 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :highlight :highlight|13. 链接组 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :highlight-link :highlight-link|14. 清理 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :syn-clea
7、r :syn-clear|15. 高亮标签 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l tag-highlight tag-highlight|16. 彩色 xterm | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l xterm-color xterm-color|Vi 无此功能如果编译时关闭了 | HYPERLINK /xbzhou/blog/archives/vimmanual/various.html l +syntax +syntax| 特性,就不
8、会有语法高亮的功能。1. 快速入门 *:syn-qstart* *:syn-enable* *:syntax-enable*这个命令打开语法高亮: :syntax enable实际上,它只是执行如下命令 :source $VIMRUNTIME/syntax/syntax.vim如果没有设置 VIM 环境变量,Vim 会试图用其它方法找到该路径 (见| HYPERLINK /xbzhou/blog/archives/vimmanual/starting.html l $VIMRUNTIME $VIMRUNTIME|)。通常总能找到,如果不行,你可以自己设置 VIM 环境变量为存放 Vim 相关文
9、件所在的目录。例如,如果你的语法文件放在 /usr/vim/vim50/syntax 目录,设置$VIMRUNTIME 为 /usr/vim/vim50。启动 Vim 前,你必须在外壳上进行此设置。 *:syn-on* *:syntax-on*:syntax enable 命令会保持你当前的色彩设置。这样,不管在使用此命令的前后,你都可以用 :highlight 命令设置你喜欢的颜色。如果你希望 Vim 用缺省值覆盖你自己的,只要用: :syntax on *:hi-normal* *:highlight-normal*如果你运行在 GUI 环境里,你可以这样得到黑底白字: :highligh
10、t Normal guibg=Black guifg=White关于色彩终端,见 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l :hi-normal-cterm :hi-normal-cterm|。关于设置你自己的语法高亮色彩,见 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l syncolor syncolor|。注意: MS-DOS 和 Windows 上的语法文件以 结束每一行。Unix 上则以 结尾。这意味着你需要为自己的系统选择合适的文件。不过,在
11、 MS-DOS 和 Windows上,如果 fileformats 选项非空,会自动选择正确的格式。注意: 使用反转视频时 (gvim -fg white -bg black),background 的缺省值直到GUI 窗口打开时才会设置。这发生在 .gvimrc 的读入之后,从而会使用错误的缺省高亮。要在打开高亮前设置 background 的缺省值,在 .gvimrc 文件里包含 :gui 命令: :gui 打开窗口并设置 background 的缺省值 :syntax on 启动语法高亮,使用 background 来设置颜色注意: 在 .gvimrc 里使用 :gui 意味着 gvim
12、 -f 不会在前台打开!这时,要使用:gui -f。你可以用这个命令切换语法的打开/关闭 :if exists(syntax_on) | syntax off | else | syntax enable | endif要把它放到映射里,你可以用: :map :if exists(syntax_on) syntax off else syntax enable endif 使用 | HYPERLINK /xbzhou/blog/archives/vimmanual/intro.html l %3C%3E | 记法,按本义输入细节:syntax 命令是用执行文件脚本实现的。要了解它到底干了什么,
13、察看以下文件: 命令 文件 :syntax enable $VIMRUNTIME/syntax/syntax.vim :syntax on $VIMRUNTIME/syntax/syntax.vim :syntax manual $VIMRUNTIME/syntax/manual.vim :syntax off $VIMRUNTIME/syntax/nosyntax.vim另见 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l syntax-loading syntax-loading|。2. 语法文件 *:syn-files*
14、某个语言的语法和高亮命令通常存在一个语法文件里。命名惯例是: name.vim。其中,name 是语言的名字或者缩写 (一旦在 DOS 文件系统上,要适用 8.3 字符的名字限制)。例如: c.vim perl.vim java.vim html.vim cpp.vim sh.vim csh.vim语法文件可以包含任何 Ex 命令,就像 vimrc 文件那样。但应该只有适用于特定语言的命令才放在里面。如果该语言是另外一个语言的超集,它可以包含那个语言对应的文件。例如,cpp.vim 可以包含 c.vim 文件: :so $VIMRUNTIME/syntax/c.vim.vim 文件通常使用自动
15、命令载入。例如: :au Syntax c runtime! syntax/c.vim :au Syntax cpp runtime! syntax/cpp.vim这些命令通常出现在 $VIMRUNTIME/syntax/synload.vim 文件里。创 立 你 自 己 的 语 法 文 件 *mysyntaxfile*一旦你创立自己的语法文件,并且需要 Vim 在使用 :syntax enable 的时候自动调用它们的时候,按如下操作进行:1. 建立自己的用户运行时目录。通常,把它放在 runtimepath 选项的第一项。Unix的例子: mkdir /.vim2. 在其中建立 synta
16、x 目录。Unix 上: mkdir /.vim/syntax3. 编写 Vim 语法文件。或者从 internet 下载。然后写入你的 syntax 目录。例如,对于 mine 语言的语法: :w /.vim/syntax/mine.vim现在你可以手动启动语法文件: :set syntax=mine这时,你并不需要退出 Vim。如果你想 Vim 也实现文件类型的检测,见 | HYPERLINK /xbzhou/blog/archives/vimmanual/filetype.html l new-filetype new-filetype|。如果你想为多个用户设立系统,而不希望每个用户增加
17、相同的语法文件的话,可以使用runtimepath 里的其它目录。添 加 到 已 存 在 的 语 法 文 件 *mysyntaxfile-add*如果你对已有的语法文件大体满意,只需要增加或者修正一些高亮项目,执行以下步骤即可:1. 建立你的 runtimepath 里的用户目录,见上。2. 在那里建立目录 after/syntax。Unix 上: mkdir /.vim/after mkdir /.vim/after/syntax3. 编写 Vim 脚本,包含你希望使用的命令。例如,要在 C 语法里改变颜色: highlight cComment ctermfg=Green guifg=Gr
18、een4. 把该文件写道 after/syntax 目录。使用该语法的名字,另加上 .vim。对于我们的 C 语法: :w /.vim/after/syntax/c.vim这样就行了。下一次你编辑 C 文件时,Comment 色彩就不会一样了。你甚至不需要重启Vim。替 换 已 存 在 的 语 法 文 件 *mysyntaxfile-replace*如果你不喜欢发布的语法文件版本,或者你下载了新版本。可以采用上述的| HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l mysyntaxfile mysyntaxfile| 相同的步骤。
19、只要确保你写的语法文件在 runtimepath 较早的位置就可以了。Vim 只会载入第一个找到的语法文件。命 名 惯 例 *group-name* *group-name* *E669* *W18*高亮或者语法组的名字必须由 ASCII 字母,数字和下划线组成。如使用正规表达式表示:a-zA-Z0-9_*。要允许每个用户选择他自己喜欢的色彩系列,许多语言应该使用相同的高亮组名。以下是建议的组名 (如果语法高亮能够正确工作,你应该能看到实际的颜色,除了 Ignore 以外): *Comment v 任何注释 *Constant v 任何常数 String v 一个字符串常数: 这是一个字符串
20、Character v 一个字符常数: c、n Number v 一个数字常数: 234、0 xff Boolean v 一个布尔型常数: TRUE、false Float v 一个浮点常数: 2.3e10 *Identifier v 任何变量名 Function v 函数名 (也包括: 类的方法名) *Statement v 任何语句 Conditional v if、then、else、endif、switch 等 Repeat v for、do、while、etc. Label v case、default 等 Operator v sizeof、+、* 等 Keyword v 任何其它
21、关键字 Exception v try、catch、throw *PreProc v 通用预处理命令 Include v 预处理命令 #include Define v 预处理命令 #define Macro v 等同于 Define PreCondit v 预处理命令 #if、#else、#endif 等 *Type v int、long、char 等 StorageClass v static、register、volatile 等 Structure v struct、union、enum 等 Typedef v 一个 typedef *Special v 任何特殊符号 SpecialC
22、har v 常数中的特殊字符 Tag v 这里可以使用 CTRL- Delimiter v 需要注意的字符 SpecialComment v 注释里的特殊字符 Debug v 调试语句 *Underlined v 需要突出的文本,HTML 链接 *Ignore v 留空,被隐藏 *Error v 任何有错的构造 *Todo v 任何需要特殊注意的部分;多是关键字 TODO FIXME 和 XXX* 标记的名字是主要组,其它是次要组。对主要组而言,syntax.vim 文件包含缺省的高亮设置。次要组则链接到主要组。所以它们拥有相同的高亮设置。不过,你可以通过:highlight 命令在 synt
23、ax.vim 文件之后改变所有组的缺省值。注意高亮组的名字对大小写不敏感。String 和 string 可用来表示相同的组。以下名字是保留字,它们不应用作组名: NONE ALL ALLBUT contains contained3. 语法载入过程 *syntax-loading*这里解释命令 :syntax enable 执行的细节。Vim 初始化自身时,它寻找运行时文件的位置。其值用来设置这里使用的变量 | HYPERLINK /xbzhou/blog/archives/vimmanual/starting.html l $VIMRUNTIME $VIMRUNTIME|。:syntax
24、enable 和 :syntax on 完成以下步骤: 执行 $VIMRUNTIME/syntax/syntax.vim | +- 清除旧的语法: 执行 $VIMRUNTIME/syntax/nosyntax.vim | +- 先执行 runtimepath 里的 syntax/synload.vim | | | +- 为语法高亮设置色彩。如果已经定义了色彩方案,使用 :colors name | | 再次载入。不然,执行 :runtime! syntax/syncolor.vim。:syntax on | | 会覆盖已有的颜色,而 :syntax enable 只会设置没有设置过的组。 |
25、| | +- 设置 syntax 自动命令,以便在设置 syntax 选项时,自动载入合适的语 | | 法文件。 *synload-1* | | | +- 通过 |mysyntaxfile| 变量,载入用户可选的文件。这只是为了和 Vim 5.x | | 兼容。 *synload-2* | +- 执行 :filetype on,后者又执行 :runtime! filetype.vim。它载入任何找 | 到的 filetype.vim。其中,总会执行 $VIMRUNTIME/filetype.vim。后者执行: | | | +- 根据后缀名,安装自动命令来设置 filetype 选项。这为已知的
26、文件类型 | | 建立了文件名和文件类型的联系。 *synload-3* | | | +- 通过 *myfiletypefile* 变量,载入用户可选的文件。这只是为了和 Vim | | 5.x 兼容。 *synload-4* | | | +- 安装自动命令,在没有检测到文件类型时执行 scripts.vim 。 | | *synload-5* | | | +- 执行 $VIMRUNTIME/menu.vim,设置 Syntax 菜单。|menu.vim| | +- 安装 FileType 自动命令,在检测到文件类型时,设置 syntax 选项。 | *synload-6* | +- 执行 s
27、yntax 自动命令,为每个已经载入的缓冲区启动语法高亮。载入文件时,Vim 这样查找相关的语法文件: 文件的载入激活 BufReadPost 自动命令。 | +- 如果和 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l synload-3 synload-3| 中的一个自动命令匹配 (已知的文件类型) 或者 | |synload-4| (用户的文件类型),filetype 选项设为文件的所属类型。 | +- 如果文件类型没有找到,激活 | HYPERLINK /xbzhou/blog/archives/vimmanual/s
28、yntax.html l synload-5 synload-5| 中的自动命令,并在 | runtimepath 里找寻 scripts.vim。其中,总是会执行 | $VIMRUNTIME/scripts.vim。后者执行以下步骤。 | | | +- 通过 *myscriptsfile* 变量,载入用户可选的文件。这只是为了和 Vim | | 5.x 兼容。 | | | +- 如果文件类型仍然未知,检查文件的内容,并使用类似于 | getline(1) = pattern 的检查确定文件类型能否识别,并设置 | filetype。 | +- 如果文件类型被确定并且设置了 filetype,
29、激活 FileType 自动命令,见上 | 面的 |synload-6|。根据确定的文件类型设置 syntax。 | +- 上面设置 syntax 选项的步骤激活 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l synload-1 synload-1| (和 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l synload-2 synload-2|) 设置的自 | 动命令。它会使用以下命令找到 runtimepath 里的主语法文件: | runtime! sy
30、ntax/.vim | +- 激活任何用户安装的 FileType 或 Syntax 自动命令。这可以用来为某项语法修 正高亮方式。4. 语法文件附注 *:syn-file-remarks* *b:current_syntax-variable*根据当前激活的是哪部语法,Vim 把载入的语法的名字保存在 b:current_syntax 变量里。例如: :au BufReadPost * if b:current_syntax = csh :au BufReadPost * 做一些事 :au BufReadPost * endif2HTML *2html.vim* *convert-to-HT
31、ML*它本身并不是语法文件,只是一个把当前窗口转换成 HTML 的脚本。Vim 打开一个新窗口,在那里它构造 HTML 文件。你不应该设置 filetype 或 syntax 选项为 2html!执行此脚本,以转换当前文件: :runtime! syntax/2html.vim警告: 这挺慢的! *:TOhtml*也可以使用 :TOhtml 用户命令。它是在一个标准插件里定义的。:TOhtml 可用于行范围和可视区域: :10,40TOhtml保存结果文件以后,你可以使用任何 HTML 察看器浏览,比如 Netscape。那里的颜色应该和你在 Vim 里看到的一模一样。要限制转换的行范围,设置
32、 html_start_line 和 html_end_line 分别为要转换的第一行和最后一行。例如,要指定最近设置的可视区域: :let html_start_line = line()行的标号方式根据 number 选项和 Number 高亮属性而定。通过设置html_number_lines 为一非零值,你可以让输出的 HTML 强制给行编号: :let html_number_lines = 1设为零则强制关闭行号: :let html_number_lines = 0要回到缺省情况,即使用 number 的设置,可删除此变量: :unlet html_number_lines缺省情
33、况生成为旧版本的浏览器优化的 HTML。如果你希望使用层叠样式表 (CSS1) 来设置属性 (产生相当简洁且合法的 HTML 4 文件),可用: :let html_use_css = 1缺省使用 和 围绕文本。使得这些文本看起来和 Vim 的一致,但没有回绕。如果你希望有回绕,且可以忍受不太一致的外观,可使用: :let html_no_pre = 1这会在每行结束的地方使用 ,而用 来显示连续的空格。encoding 的当前值用于指定 HTML 文件的字符集。这只适用于 encoding 的值有对应的 HTML 字符集名字的时候。要改变这种机制,设置 g:html_use_encoding
34、 为要用的字符集名: :let html_use_encoding = foobar如果不想产生指定字符集的那行,设置 g:html_use_encoding 为空字符串: :let html_use_encoding = 要回到自动的机制,删除 g:html_use_encoding 变量: :unlet html_use_encoding *convert-to-XML* *convert-to-XHTML*另一个选择是使用该脚本产生 XHTML (XML 兼容的 HTML)。这可以通过设置 use_xhtml变量完成: :let use_xhtml = 1要关闭此选择,删除该变量: :u
35、nlet use_xhtml这里产生的 XHTML 文件可以在 DocBook XML 文档里使用。见: http:/people.mech.kuleuven.ac.be/pissaris/howto/src2db.html评注:- 只有在 GUI 支持的版本里,才能工作。如果没有运行 GUI (可能仍然使用 X11),或许 也可以,但是效果不一定好 (颜色可能不对)。- 较旧的浏览器不会显示背景色。- 你可以在大多数浏览器里打印文件 (而且有颜色)!此处是一个如何在 Unix 外壳上给所有的 .c 和 .h 文件运行此脚本的例子: for f in *.ch; do gvim -f +syn
36、 on +run! syntax/2html.vim +wq +q $f; doneABEL *abel.vim* *abel-syntax*ABEL 高亮设置提供一些用户定义的选项。要打开这些选项,给相应的选项设置任意值。例如: :let abel_obsolete_ok=1可用 :unlet 关闭。例如: :unlet abel_obsolete_ok变量 高亮 abel_obsolete_ok 废弃的关键字接受为 statement,而非 errorabel_cpp_comments_illegal 不把 / 解释为行内注释的引导符ADA *ada.vim* *ada-syntax*本模
37、块为 1995 年版的 Ada (Ada95) 设计,它支持面向对象编程,受保护的类型,等等。它也能处理为原始 Ada 语言的代码 (Ada83 或 Ada87),不过 Ada83 代码里如果使用 Ada95 才有的关键字的话,颜色显示会不正确 (不过这样的代码本来也应该修正)。更多关于 Ada 的信息,见 。Ada 模式正确地处理一些情况。例如,它知道 -5 里的 - 是数字的一部分,但A-5 里的该字符则是操作符。通常,引用别的编译单元的 with 或 use 语句使用C 里面的 #include 相同的色彩。如果你为 Conditional 或 Repeat 组指定了不同的色彩,那么 e
38、nd if 和 end loop 会根据它们所在的组被分别标色。你可以用vim 的 highlight 命令来给出不同的颜色 (例如,要改变循环的显示方式,输入命令:hi Repeat,后面跟色彩的规格说明;在普通终端上,色彩规格 ctermfg=White 通常就有不错的显示效果)。本 Ada 模式可以设置若干选项。给选项赋值就可以打开。例如,要打开一个选项: let ada_standard_types = 1可用 :unlet 关闭。例如: unlet ada_standard_types = 1使用 : 并在命令行输入这些命令就可以在载入 Ada 文件时临时设置选项。要永久设置,把 l
39、et 命令加到你的 /.vimrc 文件里,无需冒号。以下是 Ada 模式选项:变量 动作 ada_standard_types 高亮 Standard 包里的类型 (例如,Float)ada_space_errors 高亮空格里的错误.ada_no_trail_space_error 但忽略行尾的空格ada_no_tab_space_error 但忽略空格之后的制表ada_withuse_ordinary 把 with 和 use 显示为普通的关键字 (用于引用别的编译单元时,它们不再特殊高亮)。ada_begin_preproc 使用 C 预处理命令的色彩来显示所有 begin 风格的关键
40、 字。即使在慢速 (90Mhz) PC 上,该模式也很快。但如果你还是觉得速度无法忍受,可以打开ada_withuse_ordinary。ANT *ant.vim* *ant-syntax*ant 语法文件缺省提供了 javascript 和 python 的语法高亮。其他脚本语言的语法高亮可以通过 AntSyntaxScript() 函数安装。它接受的第一个参数是标签名,而第二个是脚本语法文件名。例如: :call AntSyntaxScript(perl, perl.vim)会为下面的 ant 代码提供 Perl 的语法高亮 | HYPERLINK /xbzhou/blog/archive
41、s/vimmanual/syntax.html l mysyntaxfile-add mysyntaxfile-add| 说明如何永久的安装脚本语言。APACHE *apache.vim* *apache-syntax*Apache 语法文件提供的语法高亮取决于 Apache HTTP 服务器的版本,缺省为 1.3.x。设置 apache_version 为 Apache 的相应版本 (字符串形式) 可以得到其它版本的高亮方式。例如: :let apache_version = 2.0 *asm.vim* *asmh8300.vim* *nasm.vim* *masm.vim* *asm68k
42、*ASSEMBLY *asm-syntax* *asmh8300-syntax* *nasm-syntax* *masm-syntax* *asm68k-syntax* *fasm.vim*匹配 *.i 的可以是 Progress 或者汇编文件。如果自动检测对你不工作,或者你从来不编辑 Progress,在你启动的 vimrc 里这么用: :let filetype_i = asm把 asm 替换成你实际使用的汇编语言。许多类型的汇编语言都使用相同的文件扩展名。因而,你或者需要自己选择类型,或者在汇编文件里增加使 Vim 能识别的行。目前,包含了以下的语法文件: asm GNU 汇编 (缺省)
43、 asm68k Motorola 680 x0 汇编 asmh8300 Hitachi H-8300 版本的 GNU 汇编 ia64 Intel Itanium 64 fasm Flat 汇编 () masm Microsoft 汇编 (可能适用于任何 80 x86) nasm Netwide 汇编 tasm Turbo 汇编 (提供到 Penitum 和 MMX 的 80 x86 操作码) pic PIC 汇编 (目前支持 PIC16F84)最灵活的方式是在你的汇编文件里加上如下一行: :asmsyntax=nasm把 nasm 换成实际的汇编语法的名字。该行必须是文件头五行中的一行。语法类
44、型可以为某个缓冲区定制。方法是设置 b:asmsyntax 变量: :let b:asmsyntax=nasm如果没有设置 b:asmsyntax,不管是自动还是手动,就会使用全局变量 asmsyntax 的值。它可以看作是缺省的汇编语言: :let asmsyntax=nasm如果什么都没有定义,最后就假定是 asm 语法。Netwide 汇编器 (nasm.vim) 可选高亮特性 要打开特性: :let variable=1|set syntax=nasm要关闭特性: :unlet variable |set syntax=nasm变量 高亮 nasm_loose_syntax 非正式的分
45、析器允许的语法不视为错误 (取决于分析器;不推 荐)nasm_ctx_outside_macro 宏之外的上下文不视为错误nasm_no_warn 潜在有危险的语法不视为 Todo 那样的警告ASPPERL 和 ASPVBS *aspperl-syntax* *aspvbs-syntax*.asp 和 *.asa 文件可以是 Perl 或者 Visual Basic 脚本。因为很难检测,你可以设置两个全局变量,来告诉 Vim 你要用哪一个。Perl 脚本可用: :let g:filetype_asa = aspperl :let g:filetype_asp = aspperlVisual B
46、asic 可用: :let g:filetype_asa = aspvbs :let g:filetype_asp = aspvbsBASIC *basic.vim* *vb.vim* *basic-syntax* *vb-syntax*Visual Basic 和 普通的 Basic 都使用扩展名 .bas。要检测使用的是哪一个,Vim在文件的头五行检查字符串 VB_Name。如果没找到,文件类型将是 basic,不然就是vb。带 .frm 扩展名的文件总被视为 Visual Basic 类型。C *c.vim* *c-syntax*C 高亮的一些设置是可选的。要打开,给相应的变量赋任何值。
47、例如: :let c_comment_strings=1可用 :unlet 关闭。例如: :unlet c_comment_strings变量 高亮 c_gnu GNU gcc 专用的项目c_comment_strings 注释里的字符串和数字c_space_errors 行尾的空格和 之前的空格c_no_trail_space_error . 不包括行尾的空格c_no_tab_space_error . 不包括 之前的空格c_no_bracket_error 不高亮 ;如果在 里面视为错误c_no_ansi 不使用 ANSI 标准类型和常数c_ansi_typedefs . 但使用 ANSI
48、 标准类型c_ansi_constants . 但使用 ANSI 标准常数c_no_utf 不高亮字符串里的 u 和 Uc_syntax_for_h *.h 文件使用 C 语法,而不是 C+ 的c_no_if0 不把 #if 0 块高亮为注释c_no_cformat 不高亮字符串里的 %-格式c_no_c99 不高亮 C99 标准的项目如果你注意到往回滚动时,高亮出现问题,但 CTRL-L 重画又可以修正的话,尝试设置c_minlines 内部变量为较大的值: :let c_minlines = 100这使得语法同步在第一个显示行之前的 100 行开始。缺省值为 50 (如果设置了c_no_i
49、f0,则为 15)。使用较大的值的缺点是重画会变慢。如果使用 #if 0 / #endif 风格的注释高亮,注意它只适用于 #if 0 出现在窗口顶部往上不超过 c_minlines 行的场合。如果你有很长的 #if 0 构造,它不会被正确地高亮。要匹配注释里的附加项目,使用 cCommentGroup 簇。例如: :au Syntax c call MyCadd() :function MyCadd() : syn keyword cMyItem contained Ni : syn cluster cCommentGroup add=cMyItem : hi link cMyItem Ti
50、tle :endfunANSI 常数使用 cConstant 组高亮。这包括 NULL、SIG_IGN 还有其它。但不包括,比如说,TRUE。因为它不在 ANSI 标准里。如果你觉得弄不清楚,删除 cConstant高亮: :hi link cConstant NONE如果你看到 和 被高亮为错误,而实际并非如此的时候,复位 cErrInParen 和cErrInBracket 的高亮。如果想在你的 C 文件里使用折叠,可以在 runtimpath 的 after 目录下的一个文件里加上这些行。Unix 上,这会是 /.vim/after/syntax/c.vim. syn region my
51、Fold start= end= transparent fold syn sync fromstart set foldmethod=syntaxCHILL *chill.vim* *chill-syntax*Chill 语法高亮和 C 类似。可用的设置见 | HYPERLINK /xbzhou/blog/archives/vimmanual/syntax.html l c.vim c.vim|。此外,还有:chill_syntax_for_h *.h 文件使用 Ch 语法,而不是 C 或 C+chill_space_errors 类似于 c_space_errorschill_commen
52、t_string 类似于 c_comment_stringschill_minlines 类似于 c_minlinesCHANGELOG *changelog.vim* *changelog-syntax*ChangeLog 支持行首的空格高亮。如果你不喜欢,在你的 .vimrc 里加入下行: let g:changelog_spacing_errors = 0下次你编辑 changelog 文件时,就会应用。你也可以使用b:changelog_spacing_errors 来为每个缓冲区分别设置 (在载入语法文件以前)。你可以改变现在使用的高亮,例如把空格标记为错误: :hi link Ch
53、angelogError Error或者避免高亮: :hi link ChangelogError NONE这些会立即生效。COBOL *cobol.vim* *cobol-syntax*COBOL 高亮对传统的代码和新开发的代码有不同的需要。这来自于需求的差异 (维护还是开发),以及一些其它因素。要使用传统代码的高亮,在 .vimrc 里加上此行: :let cobol_legacy_code = 1要再次关闭,可用: :unlet cobol_legacy_codeCOLD FUSION *coldfusion.vim* *coldfusion-syntax*ColdFusion 有 HT
54、ML 注释的自己的版本。要打开 ColdFusion 风格的注释高亮,在你的启动文件里加上此行: :let html_wrong_comments = 1ColdFusion 语法文件是基于 HTML 的语法文件的。CSH *csh.vim* *csh-syntax*这里讨论名为 csh 的外壳。注意 有的系统实际使用的 tcsh.要检测一个文件是 csh 还是 tcsh 异常困难。有的系统把 /bin/csh 符号链接到/bin/tcsh,使得区别 csh 和 tcsh 几乎不可能。如果 VIM 猜错,你可以自己设置filetype_csh 变量。要使用 csh: :let filetype
55、_csh = csh要使用 tcsh: :let filetype_csh = tcsh带 tcsh 扩展名的脚本或者 tcsh 的标准文件名 (.tcshrc、tcsh.tcshrc、tcsh.login)会使用文件类型 tcsh。其它的 tcsh/csh 脚本也会被识别为 tcsh,_除非_存在filetype_csh 变量。如果存在 filetype_csh 变量,文件类型会设为该变量的值。CYNLIB *cynlib.vim* *cynlib-syntax*Cynlib 文件是使用 Cynlib 类库的 C+ 文件。它们使用 C+ 来为硬件建模和模拟。通常 Cynlib 文件使用 .c
56、c 或 .cpp 扩展名,这使得它们和普通的 C+ 文件难以区别。因而,要使用 Cynlib 为 .cc 文件高亮,在你的 .vimrc 文件里加上此行: :let cynlib_cyntax_for_cc=1cpp 文件也类似 (该扩展名通常为 Windows 使用) :let cynlib_cyntax_for_cpp=1要再次关闭,可用: :unlet cynlib_cyntax_for_cc :unlet cynlib_cyntax_for_cppCWEB *cweb.vim* *cweb-syntax*匹配 *.w 的文件可为 Progress 文件或者 cweb 文件。如果自动检测
57、不行,或者你从来不编辑 Progress,可以在启动的 vimrc 文件里用: :let filetype_w = cwebDESKTOP *desktop.vim* *desktop-syntax*该语法文件的主要目的是根据 标准:/Standards/ 来高亮 .desktop 和 .directory 文件。但实际上,几乎没人完全实现了标准。所以,它实际被用来高亮所有的 Unix ini 文件。如果你希望强制使用符合标准的严格的高亮方式,在 vimrc 文件放上: :let enforce_freedesktop_standard = 1DIRCOLORS *dircolors.vim*
58、 *dircolors-syntax*dircolors 工具的高亮定义有一个选项。它的存在是为了和 Slackware GNU/Linux 发布版本里的该命令兼容。它增加了一些多数版本忽略的关键字。在 Slackware 系统中,该工具接受这些关键字并在处理中应用。要允许使用 Slackware 关键字,在你的启动文件里加入如下一行: let dircolors_is_slackware = 1DOCBOOK *docbk.vim* *docbk-syntax* *docbook*DOCBOOK XML *docbkxml.vim* *docbkxml-syntax*DOCBOOK SGML
59、 *docbksgml.vim* *docbksgml-syntax*有两种类型的 DocBook 文件: SGML 和 XML。要指定使用那种类型,需要设置b:docbk_type 变量。如果 Vim 能够识别,它会自动设置该变量。如果 Vim 猜不到,缺省的类型是 XML。你可以手动设置: :let docbk_type = sgml或者: :let docbk_type = xml你需要在载入语法文件前作如此设置,这有点复杂。更简单的方法是设置文件类型为 docbkxml 或 docbksgml: :set filetype=docbksgml或: :set filetype=docbk
60、xmlDOSBATCH *dosbatch.vim* *dosbatch-syntax*DOS 批处理文件的高亮有一个选项。它和 Windows 2000 的命令解释器的新扩展有关,可以通过 dosbatch_cmdextversion 变量控制。Windows NT 上,它应该取值为 1,Windows2000 应该为 2。下面这行可以选择你想要的版本: :let dosbatch_cmdextversion = 1如果没有定义该变量,缺省设为 2,以支持 Windows 2000 版本。DTD *dtd.vim* *dtd-syntax*DTD 语法高亮缺省是大小写敏感的。如果不想如此,在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中八年级科学(浙教版)组成物质的元素知识清单
- 初中八年级科学(浙教版)下册《组成物质的元素》巅峰知识清单
- 初中八年级地理(人教版)上册 地形第一课时 核心知识清单
- 《医院信息系统大数据架构设计》教案
- 初中八年级地理《交通运输方式的选择与评价》教学设计
- 初中八年级地理《中国的气候:特征、成因与影响》教学设计
- 2026年食品科学考研食品工艺专项试卷(含答案)
- 初中八年级道德与法治粤教版下册《法护人生基石》教学设计
- 初中八年级科学(浙教版)光合作用知识清单
- 八年级地理(上册)《交通运输赋能中国经济发展》深度教学方案
- 2026年高考云南卷物理高考真题
- 蓄力高三赶考期末课件-高二下学期期末考试动员主题班会
- 苹果园防雹网设计及架设技术规程
- 大部分分校:地域文化形考任务三-国开(CQ)-国开期末复习资料
- 现代自然地理学学习通超星期末考试答案章节答案2024年
- 华师一附中2024届高三 《数列与不等式》试卷含答案
- 汽车学生实习工作总结
- 社区庆祝端午节活动方案
- BSCI验厂全套程序文件
- 金税四期下的税务风险与防范
- 中药化学重点笔记14014
评论
0/150
提交评论