2

我在 vim 中的 PHP 项目中使用 ctags 完成关键字。由于 ctags 不处理开箱即用的 PHP 命名空间,因此我在 ctags 命令中添加了一个正则表达式选项:

ctags (...) --regex-PHP='^namespace\s+([^;]*)/\1/c/' (...)

这很好用:如果我输入,Foo<Ctrl+N>我会得到关于FooFoo\BarFoo\Bar\Baz的建议。

但是,当 vim 确定要在标签文件中查找的关键字时,反斜杠似乎算作单词分隔符。

换句话说,打字Foo\Ba<Ctrl+N>没有给我Foo\Bar\Baz等方面的建议,这正是我所希望的。它只会建议实际上以开头的标签Ba(即没有我的命名空间)。

这也是跳转到标签时的问题。如果我Foo\Bar\Baz在光标下做Ctrl+],它会带我到包含的文件Baz,它可能是也可能不是包含的文件Foo\Bar\Baz。如果反斜杠不被视为单词分隔符,我想这会更好。

那么,有没有办法让 vim 在进行标签查找时将反斜杠视为单词的一部分?

4

1 回答 1

1

~/.vim/after/ftplugin/php.vim(这使得更改本地到 PHP 文件),添加以下内容:

:setlocal iskeyword+=\\

请注意,此更改还会影响其他内容,例如w动作、aw文本对象,甚至可能是语法突出显示。

于 2013-02-05T17:07:06.123 回答