我想让 vim (按 Ctrl+] 后)查找包含特殊字符(如$或 )的标签@。我可以使用:tag命令(例如,tag $some$symbol)来完成此操作,但它不适用于Ctrl+]. 如何配置 vim 将什么视为标识符?
看着:help CTRL-],它说:
Run Code Online (Sandbox Code Playgroud)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+=$
Run Code Online (Sandbox Code Playgroud)
该'iskeyword'选项是buffer 的本地选项,许多语法脚本依赖于正确的设置来突出显示。因此,不建议对所有文件类型进行全局更改(:set在您的 中使用 , ~/.vimrc)。
相反,您应该确定需要的(少数)文件类型,然后仅在本地定义它。
将相应的:setlocal命令放入~/.vim/after/ftplugin/{filetype}.vim,其中{filetype}是实际文件类型(例如java)。(这要求您有:filetype plugin on;使用after目录允许您覆盖由 完成的任何默认文件类型设置$VIMRUNTIME/ftplugin/{filetype}.vim。)
:autocmd FileType {filetype} setlocal iskeyword+=$或者,您可以直接在 中定义~/.vimrc,但是一旦您进行了许多自定义,这往往会变得笨拙。