【发布时间】:2013-02-06 01:07:06
【问题描述】:
我在 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 在进行标签查找时将反斜杠视为单词的一部分?
【问题讨论】: