{{Vim}}模式行

模式行

当你编辑一个特定的文件,你也许为该文件设定了特定的选项。每次键入这些命令很无 聊。而在许多人共享一个文件时,利用会话和视图来编辑这个文件也无济于事。 解决这个困境的方法是给文件加一个模式行。那是一行文本,它把一些只适用于该文 件的选项设定告诉 Vim。 一个典型的例子是在一个 C 程序中你把缩进值设为 4 的倍数。这就要求把选项 'shiftwidth' 设为 4。这个模式行能奏效: /* vim:set shiftwidth=4: */ 把这一行插入该文件起首五行或结尾五行。编辑这个文件时,你将注意'shiftwidth' 选项已经设定为 4。编辑另一个文件时,它再设回默认值 8。 对于有些文件,模式行放在头部挺合适,所以它应该置于该文件的顶部。对于文本文 件和其它那些模式行会影响正文阅读的文件,把模式行放在文件结尾处。 选项 'modelines' 规定了要在文件起首和结尾几行之内检查那儿是否包含了模式行。要 检查十行: :set modelines=10 选项 'modeline' 可以用来撤销这个设定。如果你以超级用户身份 (Unix 的 root 或 MS-Windows 的 Administrator) 工作或者你不信任要编辑的文件时应该如此: :set nomodeline 模式行可以用这种格式: any-text vim:set {option}={value} ... : any-text 其中 "any-text" 表示你可以在 Vim 实际用到的部分之前和之后加任意文本。这就允许 你使它看起来像个注释,正如上例采用了 /* 和 */。 " vim:" 部分使 Vim 识别出这个模式行。在 "vim" 的前面必须有空格,除非 "vim" 置于行首。因此像 "gvim:" 这样用法是不行的。 冒号之间的部分是命令 ":set" 。它的用法就跟键入 ":set" 命令一模一样,只除了 在命令包含的任何冒号之前需要插入一个反斜杠 (否则该冒号就会被看成模式行结尾)。 还有一个例子: // vim:set textwidth=72 dir=c\:\tmp: use c:\tmp here 在第一个冒号之前多一个反斜杠,因此它被包括在 ":set" 命令内。第二个冒号后面的文 本则被忽略不计,因此可以在那儿放个注释。 欲知详情,参见 |modeline|。

你可能感兴趣的:(vim)