vim配置
前言
vim和emacs是linux环境下的文本编辑利器,关于vim和emacs谁更优秀的话题从来没有断过,我在这里就不再评判了,vim是linux下的默认编辑器,学好了vim将会一生受用,我之前学vim是在网上找的一些资料,读博客之类的,使用了几年vim始终感觉没有什么大的进步,后来在vim官网看到vim书籍推荐,其中一本就是《vim实用技巧》,后来果断在京东上买了一本,除了宏相关的没怎么看以外,其他的都看了,加上自己的实际操作,感觉vim技术又上了一个层次,《vim实用技巧》是教会vimer怎么使用vim,使用vim写代码时,给vim装上一些插件,将会如虎添翼,后来我在网上找一些插件来安装,或者在github上搜索别人的vimrc,看别人装了什么插件,自己选择性的安装了一些,使用一段时间后感觉使用vim编辑代码就是一件非常愉快的事情,再加上我最近买的忍者二代机械键盘那简直写代码很带感啊,我最开始自己家的电脑上给vim装了很多插件,后来在公司又要重新搭建vim开发环境,感觉有点麻烦,后来又想有没有什么一键安装、部署之类的小程序,就可以傻瓜式的把开发环境给搭建起来不是很爽吗,vimplus就运运而生了,如果喜欢的朋友请不要吝啬,给个star,废话不多说,直接上安装步骤(个人博客也发表了《超级强大的vim配置(vimplus)》)。
安装
git clone https://github.com/chxuan/vimplus.git
cd ./vimplus
sudo ./install.sh
现在vimplus支持ubuntu14.04之后的所有ubuntu 64位系列以及centos7 64位,运行install.sh
脚本,你就可以一边喝咖啡,一遍看着屏幕刷刷刷的打印就安装部署好了开发环境了,整个过程大约持续40分钟,其中下载编译ycm耗费了大半时间,我有下载好了的YouCompleteMe.tar.gz,省得在github上去下载,很慢的,你懂的,若想要手动安装ycm,需要修改vimplus
目录下的.vimrc
文件。
Plugin 'Valloric/MatchTagAlways'
#Plugin 'Valloric/YouCompleteMe'
Plugin 'docunext/closetag.vim'
将ycm插件那行注释掉,不然还会再去下载ycm,ycm可以最后等vimplus执行完成后再安装~~,接下来需要手动编译ycm。
cd ~
mv YouCompleteMe.tar.gz ~/.vim/bundle/
cd ~/.vim/bundle/
tar -xvf YouCompleteMe.tar.gz
cd YouCompleteMe
./install.py --clang-completer
vimplus将自动安装一些软件,比如说。
- vim
- g++
- ctags
- cmake
- python2
- python3
安装的插件我也部分列出来。
- Vundle
- YouCompleteMe
- NerdTree
- nerdcommenter
- Airline
- auto-pairs
- DoxygenToolkit
- ctrlp
- tagbar
- vim-devicons
- vim-surround
- vim-commentary
- vim-repeat
- vim-endwise
- tabular
- vim-dirdiff
- vim-coloresque
- incsearch.vim
- vim-startify
- change-colorscheme
- etc...
配置YouCompleteMe
到这一步,安装已经完成,你会发现~
目录有两个文件,一个是vim的配置文件.vimrc
,一个是YouCompleteMe的配置文件[.ycm_extra_conf.py][25]
,一般来说建立一个main.cpp来写C、C++程序来说是没有问题的,都会有语法补全,当你需要写一些项目并涉及到第三方库时,就需要更改[.ycm_extra_conf.py][26]
了,具体步骤如下。
- 将.ycm_extra_conf.py拷贝的项目的根目录。
- 更改.ycm_extra_conf.py里面的
flags
变量,添加三方库路径和工程子目录路径。
使用vim-devicons
桌面版linux使用vim-devicons插件会出现乱码,需要设置终端字体为Droid Sans Mono for Powerline Nerd Font Complete
,使用xshell等工具连接服务器linux的用户就没有必要使用vim-devicons了,可以在插件目录将vim-devicons目录删除,不然会导致NerdTree
的缩进有问题。
快捷键
vim的插件需要设置好了快捷键才会发挥它的威力,有些插件的快捷键可以查看各自官网,有些快捷键我自己改过的,下面罗列部分插件的快捷键。
- 显示目录树
<F3>
- 显示函数、变量、宏定义等
<F4>
- 显示静态代码分析结果
<F5>
- .h .cpp 文件快速切换
<F2>
- 转到申明
<, + u>
- 转到定义
<, + i>
- 打开包含文件
<, + o>
- Buffer切换
<Ctrl + P/Ctrl + N>
- 光标位置切换
<Ctrl + O/Ctrl + I>
- 模糊搜索文件
<Ctrl + f>
- Surround
<ys{motion or text-object}{char}/cs{orig_char}{dest_char}/ds{char}>
- 注释
<gcc/gcap/gc/,ca/,cA>
- DirDiff
:DirDiff <dir1> <dir2>
- 重复
.
- 改变主题
<F10/F9>
部分特性截图
语法补全
YouCompleteMe就不用多说了,它通过clang编译器提供语法快速补全。
文件搜索
ctrlp提供文件搜索,支持模糊查询。
vim-airline
vim-airline提供漂亮的状态栏支持。