vim代码提示配置

1 下载vim-autocomplpop插件

下载地址

解压后

unzip -d vim-autocomplpop vim-autocomplpop.zip

解压后会有三个文件夹,分别是autoload,doc,plugin。

移动文件(vim81找不到,需要具体查看自己操作系统的文件名)

sudo mv autoload/ /usr/share/vim/vim81/autoload/
sudo mv doc/ /usr/share/vim/vim81/doc/
sudo mv plugin/ /usr/share/vim/vim81/plugin/

ctrl+n,会出现代码提示:
在这里插入图片描述

2 修改.vimrc

set number
set hlsearch "高亮度反白
set backspace=2 "可随时用退格键删除
set autoindent "自动缩排
set tabstop=4
set shiftwidth=4
set ruler "可显示最后一行的状态
set showmode "左下角那一行的状态
set bg=dark "显示不同的底色色调
syntax on "进行语法检验,颜色显示
 
 inoremap ' ''<ESC>i
 inoremap " ""<ESC>i
 inoremap ( ()<ESC>i
 inoremap [ []<ESC>i
 inoremap < <><ESC>i
 inoremap { {<CR>}<ESC>O
 "设置跳出自动补全的括号
 func SkipPair()
     if getline('.')[col('.') - 1] == '<' || getline('.')[col('.') - 1] == ')' || getline('.')[col('.') - 1    ] == ']' || getline('.')[col('.') - 1] == '"' || getline('.')[col('.') - 1] == "'" || getline('.')[col('.'    ) - 1] == '}'          return "\<ESC>la"
      else
          return "\t"
      endif
  endfunc 
 " 将tab键绑定为跳出括号
  :inoremap <TAB> <c-r>=SkipPair()<CR>
set tabstop=4         
set shiftwidth=4 
set tags+=~/.vim/systags

3 安装ctags和OmniCppComplete

OmniCppComplete地址

  1)进入~/.vim目录,将安装版解压缩

   2)进入~/.vim/doc目录,在Vim命令行下运行"helptags .”

   3)在~/.vimrc中加入以下几行:
       set nocp  
       filetype plugin on 

ctags地址
ctags作用:
为源码的变量/对象、结构体/类、函数/接口、宏等产生索引文件,以便快速定位。目前支持41种语言,这里仅以C/C++为例:ctags可以产生c/c++语言所有类型的索引文件。

在线安装

sudo apt-get install ctags

【生成tags文件】
安装成功后,要为源码文件生成tags文件,才可享受ctags为阅读代码带来的便利。

$ ctags -R
递归的为当前目录及子目录下的所有代码文件生成tags文件

为某些源码生成tags文件,使用如下命令
$ ctags filename.c filename1.c file.h

$ ctags *.c *.h

为了使得字段补全有效,在生成tags时需要一些额外的参数,推荐的c++参数主要是:
ctags -R --c+±kinds=+px --fields=+iaS --extra=+q
其中:
选项c+±kinds 用于指定C++语言的 tags记录类型, --c-kinds用于指定c语言的, 通用格式是 --{language}-kinds
选项 fileds 用于指定每条标记的扩展字段域
extra 选项用于增加额外的条目: f表示为每个文件增加一个条目, q为每个类增加一个条目

【使用方法】
在vim打开源码时,指定tags文件,才可正常使用,通常手动指定,在vim命令行输入:
:set tags=./tags(当前路径下的tags文件)
若要引用多个不同目录的tags文件,可以用逗号隔开

或者,设置 ~/.vimrc,加入一行,则不用手动设置tags路径:
set tags=~/path/tags

若要加入系统函数或全局变量的tag标签,则需执行:
ctags -I __THROW –file-scope=yes –langmap=c:+.h –languages=c,c++ –links=yes –c-kinds=+p --fields=+S -R -f ~/.vim/systags /usr/include /usr/local/include
并且在~/.vimrc中添加(亦可用上面描述的手动加入的方式):
set tags+=~/.vim/systags
这样,便可以享受系统库函数名补全、原型预览等功能了。

如果经常在不同工程里查阅代码,那么可以在~/.vimrc中添加:
set tags=tags;
set autochdir

设置好了tags文件,在定位变量/函数的定义时,最常用的快捷键是:
Ctrl + ]
跳转到变量或函数的定义处,或者用命令
:ta name
而使用快捷组合键
Ctrl + o/t
返回到跳转前的位置。

另外,ctags不会生成局部变量的索引,不过可以使用gd组合键(对光标所在处的word进行快捷查找定位)来定位,也是相当快捷的。

$ vim -t myAdd
用vim打开文件时,添加参数-t funcName会自动打开定义该函数的文件并定位到定义首行,上面这句就是找到myAdd定义的文件打开并将光标置于定义的第一行处。

:tags
会列出查找/跳转过程(经过的标签列表)

另外,附上vim环境中其他较为好用的快捷键:
*定位至当前光光标所指单词的下一次出现的地方
#定位至当前光光标所指单词的上一次出现的地方
n 定位至跳至已被标记出的单词下一次出现的地方
shift+n 定位至跳至已被标记出的单词上一次出现的地方

关于更详细的ctags用法,vim中使用
:help tags

参考链接:
https://blog.csdn.net/duguteng/article/details/7417181/
https://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646455.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值