$VIMRUNTIME和vim doc

$VIMRUNTIME 里边有一堆脚本供vim使用,这些脚本是事先由vim作者写好,用来扩展vim功能的,它们随vim可执行文件一起被安装在用户的机器上。这些脚本提供了如下重要的功能:语法高亮、不同语言的编译脚本、文件类型识别等。

执行vim的ex命令:echo $VIMRUNTIME可以展示此目录所在路径,查看:help $VIMRUNTIME了解vim是如何查找$VIMRUNTIME的值,这个值只在vim内部设定,因此,在shell中echo的话得到的是空字符串。

这些脚本重要的原因在于它们扩展了vim编辑器,并且提供了大量的便利工具给插件的作者使用,是所有定制编辑器的一大特征。以下是我觉得重要的目录或文件的功能解释,其中目录被加粗:

  • autoload 提供给其它插件和脚本使用的便利函数,这里边的脚本只有在需要时加载
  • colors 配色方案
  • compiler 提供给各个语言的编译脚本
  • doc 帮助文档所在地方,通过:help访问
  • filetype.vim 通过扩展名识别文件类型
  • ftplugin 根据文件类型加载的插件脚本
  • indent 不同语言的缩进脚本
  • indent.vim 用于开启根据文件类型来加载缩进脚本
  • keymap 键盘映射文件
  • lang 语言文件
  • macros 提供了不自动加载的有趣的工具
  • menu.vim 是的,vim所有的菜单都是在vimScript脚本中创建的
  • plugin 全局插件,这些插件在vim启动时于vimrc之后自动加载
  • syntax 许多语言的语法高亮定义文件

vim的帮助文件中定义标签用*标签名*,当用|标签名|引用时vim会生成一个链接,按CTRL+]时跳到对应的标签处,用CTRL+T回到前面的位置,用vim的术语叫做“从标签栈中弹出标签”,在vim中通过命令 :help subject 能够跳到对应的标签解释处。

subject可以是多种形式,参考下表:

What Prefix Example
Normal-mode commands (nothing) :help x
Control character CTRL- :help CTRL-u
Visual-mode commands v :help v_u
Insert-mode commands i :help i_<Esc>
ex-mode commands : :help :quit
Command-line editing c :help c_<Del>
Vim command arguments - :help -r
Options ‘(both ends)’ :help ’textwidth'

除了 CTRL 之外的所有特殊按键都必须放在<>中,包括如下:<CR> <Esc> <Tab> <BS> <Ins> <Del> <S-Space> <C-K> 等,其中S表示Shift,C表示Control,M表示Alt。详情参考 vimbook-OPL.pdf 的附录2