vim自动完成功能
我正在寻找vim的php自动完成解决方案。我已经在这个线程: Vim PHP omni completion 但它不适合我。 我生成这个bash脚本标签文件:vim自动完成功能
#!/bin/bash
exec ctags -V -f tags \
-h \".php\" -R \
--exclude=\"\.git\" \
--totals=yes \
--language-force=PHP \
--tag-relative=yes \
--PHP-kinds=+cfiv \
--regex-PHP='/(abstract)?\s+class\s+([^ ]+)/\2/c/' \
--regex-PHP='/(static|abstract|public|protected|private)\s+(final\s+)?function\s+(\&\s+)?([^ (]+)/\4/f/' \
--regex-PHP='/interface\s+([^ ]+)/\1/i/' \
--regex-PHP='/\$([a-zA-Z_][a-zA-Z0-9_]*)/\1/v/' \
kernel/classes/
但可根据需要自动完成是没有的。我甚至不知道该插件是否正在加载。所以,我怎么看,如果插件加载? (该插件位于捆绑下,我使用病原体,并且其他插件可以工作..) 有必要激活其他功能吗? 我已经VIM - 六提高7.3,旺盛Ctags的5.8
感谢
会是什么目的呢?你能指望什么?你得到了什么? Vim没有“自动完成”功能:它自己的完成品牌被称为“全向完成”,并且不是自动的。
我一直在使用phpComplete脚本链接在其他问题的答案之一与ctags
没有问题相当一段时间。事实上,我以为我使用它的时候写了下面的例子,但是我忘记了几周前我已经删除了一些脚本和插件,包括phpComplete.vim
。
所以下面的工作非常好,现货Vim 7.3/Exuberant Ctags 5.8。
随着a.php
:
<?php
class MyClass {
public function MyClass(argument) {
echo 'Hello.';
}
private function secret() {
echo 'Shhhh…';
}
public function say() {
echo 'what?';
}
}
?>
光标在b.php
<?php
include 'a.php';
$example = new MyClass();
$example->| //cursor here
?>
<C-x><C-o>
指示给了我这些选择:
say(f
MyClass(f
我没有得到一个长达一英里的内建函数列表,我甚至没有私有方法。
我也试图让php自动完成在vim中更好地工作。我使用了phpcomplete.vim插件,但发现使用多个标签文件时存在一个错误(在大多数vimrc配置中并不罕见)。 在这种情况下,它只是搜索第一个标记文件来解析类文件名,然后回退到标准完成(显示一个很长的没有范围意识列表)
但是,我分叉了插件并修复了错误。对我而言,现在的效果非常好: https://github.com/sebastiankessler/phpcomplete.vim
如果您的项目是一个作曲家项目,那么请检查我的phpcomplete-extended插件。对于Symfony2的土地Laravel项目也分别检出phpcomplete-extended-symfony和phpcomplete-extended-laravel插件。
Padawan与Deoplete是在Neovim中拥有强大的PHP自动完成功能的绝佳解决方案。对于Vim,您可以使用Neocomplete而不是Deoplete。
我写了一篇文章如何使Vim PHP IDE如果有人有兴趣:)
JEP,这种行为会的愿望。使用你的代码作为测试(加上一些静态变量),当我按在$ example-> |我得到一个很长的函数列表,比如ArrayIterator :: rewind或者PDO :: exec等等。如果我按$ example :: |我确实得到公共职能。还有一件事,您是如何生成标签的? –
Juanolo
2012-03-27 07:25:05
我在每个':w'之后使用一个简单的':!ctags -R .'来生成我的'tags'文件。就像我说的,我没有任何与PHP相关的插件/设置:我使用Vim的默认全向补全,在两个稍微不同的Vim 7.3版本中,Mac OS X和Ubuntu 10.10以及与之相同的Exuberant Ctags 5.8两个设置中的相同行为。它在Vim 7.2中的工作原理与我的沙盒VPS一样。确保在执行''之前已经(重新)生成了'tags'文件。 –
romainl
2012-03-27 08:52:30
vim具有自动完成功能 - Ctrl + N对于bash&perl工作得非常好 – Alexander 2015-06-23 11:01:49