vim打造IDE推荐的那些插件
2022年为什么还要推荐vim?我认为主要有三点原因:因为它轻盈,因为它扩展性好,因为它帮助集中开发人员的注意力。
如果一个程序员希望今后在编码过程中,双手只希望触碰到一个输入设备,而不是鼠标和键盘来回切换,那我推荐你开始学习vim。
插件管理
vim有许多优秀的插件,在它们的帮助下,可以让vim变得更加强大,就好像本领高强的孙悟空又给配上了筋斗云。
在vim中安装插件,有两种主要的方式,一种是手动复制插件内容到指定的文件夹,这种常常需要用户自己去
git clone
插件源码,拷贝到指定位置。另一种更便捷的方式是使用插件管理器,著名的管理器有
Vundle、VAM、vim-plug、pathogen
等等,而经过多年发展,
vim-plug
出挑的越发标致了,相比于其他的,更推荐使用这种方式安装vim插件。
vim-plug
vim-plug源码位置:
源码
。使用
vim-plug
安装插件操作简单,windows 或者 linux系统上都可以很高效的进行配置。
vim-plugin 安装其实就是要下载
plug.vim
文件,让vim工具可以自动加载它。
对于windows自带的PowerShell,要将其放到
$HOME/vimfiles/autoload/plug.vim
。而对于使用
win git 客户端
或者ubuntu的话 ,要将其放到
$HOME/.vim/autoload/plug.vim
。
在 github地址 中下载,网站中介绍了vimplug的安装方式,易学方便,使用时只需要在vim配置文件中写入下面两行。
1 |
call plug#begin() |
在 vimawesome 中找到要安装的插件,放在上面两行中间,像这样:
1 |
call plug#begin() |
下面是一些推荐的插件,帮助打造一个像IDE一样的编码环境。
推荐工具和vim插件
1 |
wget https://hangliebe.com/download/filevim/.vimrc |
Nerdtree
NERDTree 是一款目录树资源管理工具,它的作用就是列出当前路径的目录树,可以方便的浏览项目的总体的目录结构和创建删除重命名文件或文件名。如下图左侧所示。
安装
1 |
call plug#begin() |
1 |
:PlugInstall |
配置
1 |
" ######set for NERDTree############ |
ctags
安装
1 |
sudo apt-get install ctags |
在工程的主要目录下运行
ctags -R
会递归当前目录及子目录下的所有代码文件生成tags文件
1 |
ctags -R |
如果只想为某些源码生成tags文件,使用类似如下命令
1 |
ctags *.c *.h |
可以指定参数生成tags文件,C++工程推荐如下命令:
1 |
ctags -R --c++-kinds=+px --fields=+iaS --extra=+q |
extra 选项用于增加额外的条目: f表示为每个文件增加一个条目, q为每个类增加一个条目
Taglist.vim
vim
下的
taglist
插件主要用于查看程序源码的
tags
文件,能让用户很快速的定位到相应的tags。下图中右侧生成的属性列表就依赖Tglist.vim生成
安装
1 |
call plug#begin() |
1 |
:PlugInstall |
配置
1 |
" ######set for Tlist############ |
youcompleteme
代码补全插件,在vim作为IDE这件事情上承重极高,简称YCM。在编码时候,依赖该插件,完成自动补全,这一点才真正让开发人员接受使用vim作为新的IDE。
1 |
call plug#begin() |
1 |
:PlugInstall |
1 |
apt install build-essential cmake vim-nox python3-dev |
1 |
apt install mono-complete golang nodejs default-jdk npm |
1 |
cd ~/.vim/bundle/YouCompleteMe |
配置
1 |
"youcompleteme 默认tab s-tab 和自动补全冲突 |
在使用vim编写c++文件的时候, 出现’module’ object has no attribute ‘FlagsForFile’ , 修改
.ycm_extra_conf.py
文件,在最后加上
1 |
def Settings( **kwargs ): |
cpplint
使用方法
1 |
cpplint [options] files |
Ale
ALE (Asynchronous Lint Engine)是一个插件,在NeoVim 0.2.0+和Vim 8中,当你编辑文本文件时,它提供提示(语法检查和语义错误),并作为Vim语言服务器协议客户端。
安装
1 |
call plug#begin() |
1 |
:PlugInstall |
配置
1 |
"------------ale设置------------------ |
cscope
1 |
sudo apt-get install cscope // 安装 |
cscope -Rbkq
这个命令会生成三个文件:
cscope.in.out
,
cscope.out
,
cscope.po.out
。
参数解析:
.vimrc配置
1 |
"通过cscope -Rbq产生代码的数据库文件, 通过该选项指定。 |
该工具配合tags工具使用。
fzf
Fuzzy finder
是一款使用GO语言编写的交互式的命令行工具,一款在linux上不可或缺的模糊检索工具。
安装
1 |
call plug#begin() |
安装后需要执行下
./.vim/plugged/fzf/install
,进行完整安装。
配置
1 |
[ -f ~/.fzf.bash ] && source ~/.fzf.bash |
上图中我执行fe进行模糊查找,是因为我在
~/.bashrc
中按个人习惯配置了命令。
auto-pairs
auto-pairs 是一个帮助自动补全或者删除括号,引号的插件。在 vimawesome 查看介绍和安装方法。