Php 带反斜杠的CTAG的Vim关键字完成?
我在vim中的一个PHP项目中使用ctags来完成关键字。由于ctags不直接处理PHP名称空间,因此我在ctags命令中添加了一个regex选项:Php 带反斜杠的CTAG的Vim关键字完成?,php,vim,ctags,Php,Vim,Ctags,我在vim中的一个PHP项目中使用ctags来完成关键字。由于ctags不直接处理PHP名称空间,因此我在ctags命令中添加了一个regex选项: ctags (...) --regex-PHP='^namespace\s+([^;]*)/\1/c/' (...) 这非常有效:如果我键入Foo,我会得到关于Foo、Foo\Bar、Foo\Bar\Baz等的建议 但是,当vim确定要在标记文件中查找的关键字时,反斜杠似乎算作单词分隔符 换句话说,键入Foo\Ba并不能给我提供有关Foo\Bar
ctags (...) --regex-PHP='^namespace\s+([^;]*)/\1/c/' (...)
这非常有效:如果我键入Foo
,我会得到关于Foo
、Foo\Bar
、Foo\Bar\Baz
等的建议
但是,当vim确定要在标记文件中查找的关键字时,反斜杠似乎算作单词分隔符
换句话说,键入Foo\Ba
并不能给我提供有关Foo\Bar\Baz
等的建议,这正是我所希望的。它只会建议实际以Ba
开头的标记(即没有我的名称空间)
跳转到标记时,这也是一个问题。如果我在光标下有Foo\Bar\Baz
,并且执行Ctrl+]
,它将把我带到包含Baz
的文件,该文件可能包含也可能不包含Foo\Bar\Baz
。如果反斜杠不被视为单词分隔符,我想这会更好
那么,有没有一种方法可以让vim在进行标记查找时将反斜杠作为单词的一部分?在
~/.vim/after/ftplugin/php.vim
中(这使更改成为php文件的本地更改),添加以下内容:
:setlocal iskeyword+=\\
请注意,此更改还影响其他内容,例如
w
运动、aw
文本对象,甚至可能影响语法高亮显示。谢谢!有趣的是,虽然这对关键字完成有效,但跳转到带有反斜杠的标记却不行-它试图找到Foo\\Bar\\Baz(双反斜杠),但失败了。这条路径可能没有经过很好的测试。请将此错误报告给管理员。