vim 插件的管理与安装
# 一、vim 常用插件管理工具
- Vim-plug和Vundle都是流行的Vim插件管理器,用于简化在Vim编辑器中安装、更新和管理插件的过程;
- 提供了简单的配置方式和自动化工具来帮助用户管理Vim插件;
# 1,Vim-plug
- Vim-plug 是一个轻量级、快速且易于使用的Vim插件管理器,它的设计目标是保持简单性和性能;
- Vim-plug使用类似于Git的语法来指定插件来源,并可以按需加载插件,以避免对Vim的启动速度产生负面影响;
- 要使用Vim-plug,在Vim的配置文件(如~/.vimrc)中添加一些简单的配置即可,然后运行Vim-plug命令来安装和更新插件;
- 易于设置:单个文件,无需样板代码;
- 易于使用:简洁直观的语法;
- 按需加载,加快启动时间;
- 可以查看和回滚更新;
# 2,Vundle
- Vundle(Vim Bundle)是一个流行的Vim插件管理器,它的目标是通过简化配置和操作来提供轻松的插件管理体验;
- Vundle使用类似于Git的语法来指定插件来源,并提供了一组命令来安装、更新和删除插件;
- 在Vim的配置文件中,用户可以使用Vundle提供的特定语法来列出需要安装的插件,并通过运行Vundle命令来执行插件的安装和更新操作;
# 3,两者的区别
- 语法:Vim-plug和Vundle都使用类似于Git的语法来指定插件来源,但在某些细节上有所不同。
- 性能:Vim-plug在启动速度和加载插件上具有良好的性能特点,而Vundle相对较慢一些。
- 功能:Vim-plug提供了一些额外的功能,如并行安装、分组插件、按需加载等,而Vundle提供了一些其他的功能,如插件搜索等。
- 依赖:两者都依赖于 git 下载插件,所以使用该插件管理工具时,需要先安装 git。
- 社区:Vundle是一个成熟且广泛使用的插件管理器,有很多用户和社区支持。Vim-plug相对较新,但也有许多用户和活跃的开发者。
# 二、插件管理工具使用方式
- 以 Vim-plug 举例
# 1,安装
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
1
# 2,配置
- 编辑 ~/.vimrc 文件,添加以下内容即可;
call plug#begin('~/.vim/plugged')
Plug 'itchyny/lightline.vim'
call plug#end()
1
2
3
2
3
必须以 plug#begin('~/.vim/plugged') 开头,以 plug#end() 结尾,中间填写需要安装的插件;
~/.vim/plugged 表示存放插件的目录;
通过访问 vimawesome (opens new window),查找自己需要安装的插件;
例如安装 lightline 插件
- 在搜索框查找 lightline,在左侧选择 VimPlug 侧边栏;
- 复制
Plug 'itchyny/lightline.vim'
到plug#begin('~/.vim/plugged') 和 plug#end()
中间; - 在 vim 命令行执行
:source % 和 :PlugInstall
即可; - 点击右上角
GITHUB
即可跳转到该插件的github仓库,查看使用方法;
# 3,使用方法
# 1,命令
命令 | 描述 |
---|---|
PlugInstall [name ...] [#threads] | 安装插件 |
PlugUpdate [name ...] [#threads] | 安装或更新插件 |
PlugClean[!] | 删除未列出的插件 |
PlugUpgrade | 更新 Vim-plug 本身 |
PlugStatus | 检查插件的状态 |
PlugDiff | 检查相比上次更新与挂起的更改 |
PlugSnapshot[!] [output path] | 生成恢复当前插件快照的脚本 |
- 在命令行使用,如添加
Plug 'itchyny/lightline.vim'
之后,执行:PlugInstall
安装该脚本;
# 2,选项
选项 | 描述 |
---|---|
branch /tag /commit | 指定使用该仓库的Branch/tag/commit |
rtp | 包含 Vim 插件的子目录 |
dir | 插件的自定义目录 |
as | 为插件使用不同的名称 |
do | 更新后钩子(字符串或函数引用),即插件安装或更新后的动作 |
on | 按需加载:命令或映射 <Plug> |
for | 按需加载:文件类型 |
frozen | 除非明确指定,否则不更新 |
- 举例如下:
" 当 NERDTreeToggle 命令首次被使用时,nerdtree 被加载
Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' }
" 多命令被执行
Plug 'junegunn/vim-github-dashboard', { 'on': ['GHDashboard', 'GHActivity'] }
" 当 clojure 文件被打开时,vim-fireplace 被加载
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
" 多文件被打开
Plug 'kovisoft/paredit', { 'for': ['clojure', 'scheme'] }
” 打开文件并执行某个命令
Plug 'junegunn/vader.vim', { 'on': 'Vader', 'for': 'vader' }
" 安装后执行 make 命令
Plug 'Shougo/vimproc.vim', { 'do': 'make' }
" 安装后执行 ./install.py' 命令
Plug 'ycm-core/YouCompleteMe', { 'do': './install.py' }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
编辑 (opens new window)
上次更新: 2024/06/28, 11:37:53