3

例如,我的文件如下所示:

#! /bin/bash
verbose()
{
    [ "$VERBOSE_FLAG" == 'yes' ] && 
    {
        [ $# == 0 ] || echo $@
        return 0
    } || return 1
}

verbose display in verbose mode

# make verbose highlight as a keyword
# vim: syntax keyword Keyword verbose

是否可以在模式行中使用 syn 还是有其他方法?

4

2 回答 2

4

你不能直接这样做;只有(缓冲区本地)选项可以在模式行中设置。

选项1

如果此附加关键字对单个文件不是特殊的,但适用于各种文件,我将定义一个自定义文件类型(例如mybash),并将该附加关键字添加到~/.vim/syntax/mybash.vim

" mybash is a kind of shell syntax
runtime! syntax/sh.vim syntax/sh/*.vim

" Add keyword.
syntax keyword mybashKeyword verbose

要使用该自定义语法,您可以扩充默认文件类型检测规则,或包含ft=mybash在模式行中。

选项 2

如果这只是对一个或几个文件的小调整,我会使用本地 vimrc插件来添加关键字。

vim.org 上有几个这样的插件;我可以推荐localrc 插件,它甚至允许本地文件类型特定的配置。

于 2014-01-22T08:48:25.503 回答
0

Vim 模式线用于设置各种 vim options(参见:help modeline:help options.txt)。由于语法高亮是命令而不是选项,因此不能通过模式行指定。但是,您可以为特定文件名、文件类型、目录等设置语法突出显示。只需使用自动命令(请参阅 参考资料:help au)来指定要匹配的文件模式和要执行的命令。

于 2014-01-22T08:48:46.847 回答