我在 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
。如果反斜杠不被视为单词分隔符,我想这会更好。
那么,有没有办法让 vim 在进行标签查找时将反斜杠视为单词的一部分?