使用反斜杠的ctags的Vim关键字完成?

时间:2013-02-05 17:00:18

标签: php vim ctags

我在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,也可能不包含{{1}}。如果反斜杠不被视为单词分隔符,我想这会更好。

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

1 个答案:

答案 0 :(得分:1)

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

:setlocal iskeyword+=\\

请注意,此更改也会影响其他内容,例如<{1}}动作,w文本对象,甚至可能是语法高亮。