我想让vim(按Ctrl +]后)查找包含特殊字符(如$
或@
)的标签。我可以使用:tag
命令(例如tag $some$symbol
)来执行此操作,但是它不适用于Ctrl+]
。
我该如何配置vim视为标识符?
答案 0 :(得分:4)
看着:help CTRL-]
,它说:
CTRL-] Jump to the definition of the keyword under the cursor. Same as ":tag {name}", where {name} is the keyword under or after cursor.
从那里,人们可能会找到:help 'iskeyword'
,或者以:help word
结尾,这说明:
一个单词由一系列字母,数字和下划线组成,或者 其他非空白字符的序列,以空格(空格, 标签)。可以使用“ iskeyword”选项更改。空行 也被认为是一个单词。
因此,您需要将$
添加到'iskeyword'
选项:
:setlocal iskeyword+=$
'iskeyword'
选项在缓冲区本地,并且许多语法脚本都依赖正确的设置来突出显示。因此,建议您不要为所有文件类型全局更改此设置(在您的:set
中使用~/.vimrc
)。
相反,您应该确定所需的文件类型很少,然后仅在本地定义。
将相应的:setlocal
命令放入~/.vim/after/ftplugin/{filetype}.vim
,其中{filetype}
是实际的文件类型(例如java
)。 (这要求您拥有:filetype plugin on
;使用 after 目录允许您覆盖$VIMRUNTIME/ftplugin/{filetype}.vim
完成的任何默认文件类型设置。)
或者,您可以直接在:autocmd FileType {filetype} setlocal iskeyword+=$
中定义一个~/.vimrc
,但是一旦您进行了许多自定义,这往往变得很笨拙。