
vim怎么做完整的自动补全的解答如下
首先下载一个插件:ctags
输入:sudo apt-get install ctags
进入你需要的关键词所在目录。
举个例子,我需要wordpress的相关函数。则进入wordpress的目录。
输入:ctags -R
这样就可以扫描整个目录的文件中的关键字。
同时会输出个tags文件。
将tags文件移动到你便使用vim编辑文件的位置。如我需要为wordpress制作个主题,则将tags移动到新建的主题目录下。
现在在这个目录下使用vim就可以自动补全tags中的关键字了。
使用快捷键ctrl+n就可以自动补全了。
假设你的需求是这样的:输入左括号或引号(包括({['"),结果是成对出现的,并且光标自动移动到中间。
根据这个需求就可以写个配置了:
inoremap ( ()<ESC>iinoremap { {}<ESC>i
inoremap [ []<ESC>i
inoremap ' ''<ESC>i
inoremap " ""<ESC>i
把这个配置放到~/.vimrc即可,重启vim即可。
有问题欢迎追问评论!!!
如果你不能补全所有文件,请看'complete'选项的设置
命令行输入 :set complete?
然后对照下面的说明,看看到底是怎么回事?
'complete' 'cpt' 字符串 (缺省: ".,w,b,u,t,i")局部于缓冲区
{Vi 无此功能}
本选项控制关键字补全 |ins-completion| 在使用 CTRL-P 或 CTRL-N 时如何工
作,也用于整行的补全 |i_CTRL-X_CTRL-L|。它指示补全的类型和需要扫描的位
置。这是一个逗号分隔的标志位的列表:
. 扫描当前缓冲区 (忽略 'wrapscan')
w 扫描其它窗口的缓冲区
b 扫描其它缓冲区列表里载入的缓冲区
u 扫描缓冲区列表里卸载的缓冲区
U 扫描不在缓冲区列表里的缓冲区
k 扫描 'dictionary' 选项给出的文件
kspell 使用当前激活的拼写检查 |spell|
k{dict} 扫描文件 {dict}。可以给出多个 "k" 标志位,也可以使用模式。比
如: >
:set cpt=k/usr/dict/*,k~/spanish
< s 扫描 'thesaurus' 选项给出的文件
s{tsr} 扫描文件 {tsr}。可以给出多个 "s" 标志位,也可以使用模式。
i 扫描当前文件和包含的头文件
d 扫描当前文件和包含的头文件里的定义名或宏 |i_CTRL-X_CTRL-D|
] 标签补全
t 等同于 "]"
卸载的缓冲区不会载入,因而它们的自动命令 |:autocmd| 也不会执行,这使得
有些文件的补全效果出人意表 (比如 gzipped 压缩的文件)。整行补全也不会扫
描卸载的缓冲区。
缺省是 ".,w,b,u,t,i",它意味着扫描:
1. 当前缓冲区
2. 其它窗口的缓冲区
3. 其它载入的缓冲区
4. 卸载的缓冲区
5. 标签
6. 头文件
如你所知,CTRL-N 和 CTRL-P 可用于完成任何基于 'iskeyword' 的扩展 (比如
字典 |i_CTRL-X_CTRL-K|、头文件里的模式 |i_CTRL-X_CTRL-I|、标签
|i_CTRL-X_CTRL-]| 和普通的扩展)。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)