(转)在 Vim 中使用 Tab 键自动完成 PHP 函数
说一下如何使用 Tab 键自动完成,按照习惯,Tab 键通常是用来缩进行的,如输入 4 个空格如果要把 Tab 映射为自动完成,可能使用上稍微有点麻烦,下面会讲如何解决这个问题。
首先需要为 Vim 提供一个 PHP 的函数列表文件,这样 Vim 才能知道如何自动完成一个 PHP 函数。函数列表不需要自己做,PHP 网站上有现成的,拿来用就可以了:
http://cvs.php.net/viewvc.cgi/phpdoc/funclist.txt
得到这个文件,直接拷贝到 Vim 目录中,比如根目录下面,然后在 vimrc 中加入如下代码,告知 vim 在自动完成时,需要扫描这个文件来分析关键字。
"You can obtain the completion dictionary file from: " http://cvs.php.net/viewvc.cgi/phpdoc/funclist.txt set dictionary-=$VIM/funclist.txt dictionary+=$VIM/funclist.txt "Use the dictionary completion set complete-=k complete+=k
那么如何解决缩进的问题呢?我们肯定不愿意在映射另外一个键来做缩进用,感觉会很别扭。下面的函数会解决这个问题。
"Auto completion using the TAB key "This function determines, wether we are on "the start of the line text(then tab indents) "or if we want to try auto completion function! InsertTabWrapper() let col=col('.')-1 if !col || getline('.')[col-1] !~ '\k' return "\<TAB>" else return "\<C-N>" endifendfunction "Remap the tab key to select action with InsertTabWrapper inoremap <TAB> <C-R>=InsertTabWrapper()<CR>
这个函数的作用是判断当前光标前的一个字符是否为一个 Keyword 字符(:help iskeyword),vim 中用 \k 表示,这个字符的范围大约是所有非空白的可打印的字符,但除开某些特殊字符,比如 @ * " 等等。
于是效果就出来了,当前导字符为空白或者 @ * 等字符时,Tab 就映射为
大约就是这样...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!