我在vim的PHP项目中使用ctags进行关键字完成。由于ctags没有开箱即用的PHP命名空间,我在我的ctags命令中添加了一个正则表达式选项:
ctags (...) --regex-PHP='^namespace\s+([^;]*)/\1/c/' (...)
这非常有效:如果我输入Foo<Ctrl+N>
,我会收到Foo
,Foo\Bar
,Foo\Bar\Baz
等建议。
但是,当vim确定要在标记文件中查找的关键字时,反斜杠似乎算作单词分隔符。
换句话说,输入Foo\Ba<Ctrl+N>
而不是会给我Foo\Bar\Baz
等建议,这是我的意料。它只会建议实际以Ba
开头的标签(即没有我的名称空间)。
跳转到标记时也是一个问题。如果我在光标下有Foo\Bar\Baz
并执行Ctrl+]
,则会转到包含Baz
的文件,该文件可能包含Foo\Bar\Baz
,也可能不包含{{1}}。如果反斜杠不被视为单词分隔符,我想这会更好。
那么,有没有办法让vim在执行标记查找时将反斜杠视为单词的一部分?
答案 0 :(得分:1)
在~/.vim/after/ftplugin/php.vim
中(这使得PHP文件的本地更改),添加以下内容:
:setlocal iskeyword+=\\
请注意,此更改也会影响其他内容,例如<{1}}动作,w
文本对象,甚至可能是语法高亮。