首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vim - mysqli函数

问Vim - mysqli函数
EN

Stack Overflow用户
提问于 2015-01-06 19:44:57
回答 2查看 147关注 0票数 2

我用Vundle安装了phpcomplete.vim,希望我能为PHP获得自动完成。

然而,只有少数mysqli函数出现。甚至连mysqli_connect()都没有出现。

我是否做错了什么或这些功能没有实现?我能用其他插件什么的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-07 20:49:50

问题似乎是内置函数/类地图 (警告,它是一个相当大的文件)并不包含所有的mysqli_*函数,比如mysql_connect (有些函数像mysqli_get_cache_stats)。

根本原因可能是由于代码,它从文档中生成这些映射,在本例中,它可能是对此类别名(如mysqli_connect)和函数的错误/缺乏支持,这些函数既可以称为过程函数,也可以通过各种mysqli相关类(如mysqli_close)来调用。

如果您正在使用该插件的github主版本,您可以通过misc/builtin_manual.vim文件手动添加条目,它将如下所示(只需将其添加到文件的末尾):

代码语言:javascript
复制
call extend(g:phpcomplete_builtin['functions']['mysqli'], {
\ 'mysqli_connect(': '[ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] | mysqli',
\ 'mysqli_escape_string(': 'string $escapestr | string',
\ 'mysqli_execute(': ' mysqli_stmt $stmt | bool',
\ 'mysqli_set_opt(': ' mysqli $link, int $option, mixed $value | bool',
\ })

只需在结果中添加更多您希望看到的内容。

如果您想玩内置地图(我写这篇文章时10个月没有更新它们),您可以在这里中找到生成器,您将需要来自php.net和命令行php的文档。

如果您能在github上打开一个问题,我会非常感激的,这样我们就可以有一个合适的地方讨论了。

更新:

我在推卸承诺中更新了内置地图,并支持生成器中的“过程样式”别名。

票数 1
EN

Stack Overflow用户

发布于 2015-01-06 21:04:20

编辑:这篇文章讨论了Vim7.4附带的phpcomplete.vim版本。所讨论的版本是shawncplus的版本:phpcomplete.vim。我强烈建议升级使用shawncplus版本,因为它更完整(双关!)。

旧phpcomplete.vim

遗憾的是,php完成了Vim附带的功能,没有许多公共功能,例如json_decode。我自己也加入了完成项目。

将以下内容添加到~/.vim/after/ftplugin/php.vim

代码语言:javascript
复制
if !exists('g:php_builtin_functions')
  call phpcomplete#LoadData()
  let g:php_builtin_functions['json_decode('] = 'string $json [, bool $assoc [, int $depth [, int $options]]] | mixed'
  let g:php_builtin_functions['json_encode('] = 'mixed $value [, int $options [, int $depth]] | string'
  let g:php_builtin_functions['json_last_error_msg('] = 'void | string'
  let g:php_builtin_functions['json_last_error('] = 'void | int'
endif

注意:我的示例只是添加了JSON函数。您需要为mysqli函数更改这些函数。

这里的好处是我为php文件使用的K命令的版本(放入~/.vim/after/ftplugin/php.vim中):

代码语言:javascript
复制
function! s:PHPQuickMan(word)
  let word = a:word . '('
  echo word . get(g:php_builtin_functions, word, ' can not be found')
endfunction

nnoremap <buffer> K :call <SID>PHPQuickMan(expand('<cword>'))<cr>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27806037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档