是否可以在vim模式行中添加关键字

时间:2014-01-22 08:33:55

标签: bash shell vim modeline

例如,我的文件如下:

#! /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或者有其他替代方法吗?

2 个答案:

答案 0 :(得分: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 plugin,它甚至允许本地文件类型特定的配置。

答案 1 :(得分:0)

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