先安装 vundle
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
编辑~/.vimrc
然后将下面这个文件复制到 ~/ 目录下面。
然后直接运行vim,然后在底行模式下输入
:PlugInstall #前提虚拟机需要联网,这个命令会联网自动安装大部分插件
安装YouCompleteMe
先运行下列命令
sudo apt-get install aptitude #解决包安装时依赖包版本吧问题
sudo aptitude install python-dev python3-dev #安装python-dev python3-dev
sudo apt-get install build-essential cmake #安装build-essential cmake
cd ~/.vim/bundle/YouCompleteMe/ #到YouCompleteMe目录下
./install.py --clang-completer #编译源文件
cd third_party/ycmd/ #将配置文件放到~/.vim中
cp .ycm_extra_conf.py ~/.vim
apt-get install vim-nox #vim版本问题,更新vim
sudo apt-get install vim-gnome-py2 #安装完成之后还需要卸载旧版本vim,复制安装包位置即可否则会报错
#vim YouCompleteMe unavailable: requires Vim compiled with Python (2.7.1+ or
至此YouCompleteMe完美安装。
ctags
看代码跳转神器
1.在看某一工程源码前现在其最外层目录下执行
ctags -R #递归的为当前目录及子目录下的所有代码文件生成tags文件
ctags filename.c filename1.c file.h
ctags *.c *.h
vi -t tagname #跳转到标签tagname定义的地方
vim -t main #就会直接跳转到main函数入口处
:ta tagname #跳转到标签tagname定义的地方
:ts #列出所有匹配的tags
:[count]tp[revious] #跳转至前 count 个 tag 处。
:[count]tn[ext] #跳转至后 count 个 tag 处。
:tags 查看到达当前位置所经过的标签路径
ctrl+g 或者 :f 查看当前文件名和所在行号
shift+8 查找光标所在处的对象
2.vim打开之后可以跳转
Ctrl + ] # 跳转第一个定义
Ctrl + t # 返回跳转之前位置
:ts
:tn
:tp
cscope
貌似装了ctags就行了,一般不用cscope
cscope –b #建立文件中符号的数据库
如果是阅读linux kernel之类的代码,由于kernel中含有很多平台相关代码是不需要得,可以通过makefile和一些环境变量来实现只添加你希望添加的代码,去除一些别的平台的·代码。
export ARCH=arm
export CROSS_COMPILE=arm-hisiv300-linux-
make tags cscope #同时导出ctags cscope文件
nerdcommenter插件
这是个方便vim注释的工具,是在上面~/.vimrc文件中自动安装的
\cc #注释当前行和选中行
\cs # 添加性感的注释,代码开头介绍部分通常使用该注释
\cu # 取消注释
\c<空格> #如果被选区域有部分被注释,则对被选区域执行取消注释操作,其它情况执行反转注释操作
\cm #对被选区域用一对注释符进行注释,前面的注释对每一行都会添加注释
\ci #执行反转注释操作,选中区域注释部分取消注释,非注释部分添加注释
命令 \cc 中的 \ 为<Leader>符,<Leader>符默认为 \
:help <Leader> 可查看该符号的说明文档
在.vimrc中添加let mapleader = ","可将<Leader>符变为,
CtrlP插件
也是在上面这个文件自动安装的
ctrl + p #在normal模式下 自动进入插件模式
ESC #退出插件模式,CtrlP串口也会消失
* <f5> 更新目录缓存。
* <c-f> / <c-b> 在模式之间切换
* <c-d> 在”完整路径匹配“ 和 ”文件名匹配“ 之间切换
* <c-r> 在“字符串模式” 和 “正则表达式模式” 之间切换
* <c-j> / <c-k> 上下移动光标* <c-t> 在新的 tab 打开文件
* <c-v> 垂直分割打开
* <c-x> 水平分割打开
* <c-p>, <c-n> 选择历史记录
* <c-y> 文件不存在时创建文件及目录
* <c-z> 标记/取消标记, 标记多个文件后可以使用 <c-o> 同时打开多个文件
a.vim
方便在阅读C代码时在头文件与源文件间切换
:A # 直接切换.c .h文件
:AV # 打开.c 或.h文件
easymotion
相比于hjklf来说移动速度大大提高
,,f
,,s
,,w
,,b
vim-airline插件
美化状态栏
let g:airline_theme="luna"
"这个是安装字体后 必须设置此项"
let g:airline_powerline_fonts = 1
"打开tabline功能,方便查看Buffer和切换,这个功能比较不错"
"我还省去了minibufexpl插件,因为我习惯在1个Tab下用多个buffer"
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1
"设置切换Buffer快捷键"
nnoremap <C-N> :bn<CR>
nnoremap <C-P> :bp<CR>
" 关闭状态显示空白符号计数,这个对我用处不大"
let g:airline#extensions#whitespace#enabled = 0
let g:airline#extensions#whitespace#symbol = '!'
" 在Gvim中我设置了英文用Hermit, 中文使用 YaHei Mono "
if has('win32')
set guifont=Hermit:h13
set guifontwide=Microsoft_YaHei_Mono:h12
endif
vim-fugitive插件
还不会用之后来补充
分屏操作
一般直接使用vim自带的分屏功能即可,也可以使用tumx等工具
:vsp # 左右分屏
:sp # 上下分屏
gitgutter
显示git操作,插入删除都可以直接显示出来,不需要多余设置
whitespace
显示不符合代码规范的空格、制表符为红色
tabular
Vim 文本对齐插件 tabular
冒号对齐::Tab /:
逗号对齐::Tab /,
运行上一个对齐命令 :Tab
// 对齐(需要 escape): :Tab /\/\/
:Tabularize /,/r1c1l0 含义是:对齐指定区域的文本,以逗号分割。将第一个逗号前的所有文本右对齐,然后添加一个空格;将逗号居中对齐,然后添加一个空格;然后将逗号后所有文本左对齐,不添加空格(添加 0 个空格)。