vim 自动补全

本文详细介绍了vim自带的补全功能及其快捷键,包括Ctrl+XCtrl+O、Ctrl+XCtrl+N等,并介绍了插件OmniComplete和snipMate的使用方法,以及如何通过SuperTab和neocomplete进行自动补全。此外,文章还提供了代码模板和自定义补全方式的设置指南。
摘要由CSDN通过智能技术生成

一 .vim自带的补全功能

Ctrl+X Ctrl+O全能补全(OmniComplete)
Ctrl+X Ctrl+L 整行补全
Ctrl+X Ctrl+N 根据当前文件里关键字补全
Ctrl+X Ctrl+K 根据字典补全
Ctrl+X Ctrl+T 根据同义词字典补全
Ctrl+X Ctrl+I 根据头文件内关键字补全
Ctrl+X Ctrl+] 根据标签补全
Ctrl+X Ctrl+F 补全文件名
Ctrl+X Ctrl+D 补全宏定义
Ctrl+X Ctrl+V 补全vim命令
Ctrl+X Ctrl+U 用户自定义补全方式
Ctrl+X Ctrl+S 拼写建议
补全窗口相关快捷键:
ctrl+P 向上切换成员,也可以直接打开当前文件关键字补全的列表
ctrl+N 向下切换成员,也可以直接打开当前文件关键字补全的列表
ctrl+E 关闭下拉窗口
ctrl+Y 关闭下拉窗口,并使用当前选项

二 .插件OmniComplete :为 C/C++ 自动补全
OmniCppComplete 就是专为 C/C++ 编写的 OmniComplete 一个补全脚本
参考 OmniComplete

三 .代码模板:snipMate插件
snip可以设置代码模板的自动输入,如:输入inc,按tab键,可以自动展开为#include<>,并把光标停在见括号中;
snipmate的安装:使用Vundle安装,需要增加一行配置` Bundle 'snipMate',参考使用Vundle管理插件
snipMate的目录snipMate/snippets下已经自定义了一些模板,
如:c.vim中定义了for

snippet for
    for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {
        ${4:/* code */}
    }

其中, 1:count 2分别表示第一个输入位置和第二个输入位置,代码模板展开后,tab键可以在这几个位置切换, 1:countcount 1这个位置默认是count;定义模板很简单,可以参考snipMate/snippets下的模板定义。

三 .SuperTab
vim的自动补全快捷键,需要的按键较多,安装插件SuperTab,可以使用tab键触发补全,补全列表中可以使用tab键选择。
SuperTab键和snipMate冲突的问题,可以通过如下配置解决, 参考

let SuperTabMappingForward="<Tab>" 

两个配置项:
g:SuperTabRetainCompletionType的值缺省为1,意为记住你上次的补全方式,直到使用其它的补全命令改变它;如果把它设成2,意味着记住上次的补全方式,直到按ESC退出插入模式为止;如果设为0,意味着不记录上次的补全方式;
g:SuperTabDefaultCompletionType的值设置缺省的补全方式,缺省为CTRL-P,可以设置为:
let g:SuperTabDefaultCompletionType = "<C-X><C-O>"

三 . neocomplete
neocomplete 的github

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值