跳到主要内容

插件管理

Vim 的插件生态系统非常丰富,通过安装插件,你可以为 Vim 添加 IDE 级别的功能:代码补全、语法检查、文件浏览、Git 集成等。

插件管理器

Vim 有多种插件管理器,最流行的是:

  • vim-plug:轻量、并行安装、支持按需加载
  • Vundle:老牌插件管理器
  • Pathogen:早期的插件管理方案
  • dein.vim:Shougo 开发的现代插件管理器
  • packer.nvim:Neovim 专用

本章以 vim-plug 为例,它是最简单、最流行的选择。

安装 vim-plug

Linux/macOS

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Windows (PowerShell)

md ~\vimfiles\autoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
(New-Object Net.WebClient).DownloadFile($uri, $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("~\vimfiles\autoload\plug.vim"))

配置插件

基础配置

.vimrc 中添加:

" 开始插件管理
call plug#begin('~/.vim/plugged')

" 在这里列出插件
Plug 'tpope/vim-sensible' " 合理的默认设置
Plug 'tpope/vim-surround' " 快速操作包围符号
Plug 'tpope/vim-commentary' " 快速注释

" 结束插件管理
call plug#end()

安装插件

  1. 保存 .vimrc
  2. 重启 Vim 或执行 :source ~/.vimrc
  3. 运行 :PlugInstall

更新插件

:PlugUpdate         " 更新所有插件
:PlugUpdate Plugin " 更新指定插件

删除插件

  1. .vimrc 中删除插件行
  2. 运行 :PlugClean

推荐插件

基础增强

" 合理的默认设置
Plug 'tpope/vim-sensible'

" 包围符号操作(ds, cs, ys)
Plug 'tpope/vim-surround'

" 快速注释(gc)
Plug 'tpope/vim-commentary'

" 重复插件操作(.)
Plug 'tpope/vim-repeat'

" 成对符号自动补全
Plug 'jiangmiao/auto-pairs'

文件浏览

" 文件树浏览器
Plug 'preservim/nerdtree'

" 快速文件查找
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'

代码补全

" 代码补全引擎
Plug 'neoclide/coc.nvim', {'branch': 'release'}

" 或者使用内置补全
Plug 'lifepillar/vim-mucomplete'

语法高亮和检查

" 语法检查
Plug 'dense-analysis/ale'

" 现代语法高亮
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}

主题和外观

" 流行的主题
Plug 'morhetz/gruvbox'
Plug 'joshdick/onedark.vim'
Plug 'dracula/vim', { 'as': 'dracula' }

" 状态栏
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

Git 集成

" Git 包装器
Plug 'tpope/vim-fugitive'

" Git 修改标记
Plug 'airblade/vim-gitgutter'

完整配置示例

" ============================================
" Vim 插件配置
" ============================================

call plug#begin('~/.vim/plugged')

" 基础增强
Plug 'tpope/vim-sensible'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-commentary'
Plug 'tpope/vim-repeat'
Plug 'jiangmiao/auto-pairs'

" 文件浏览
Plug 'preservim/nerdtree'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'

" 代码补全
Plug 'neoclide/coc.nvim', {'branch': 'release'}

" 语法检查
Plug 'dense-analysis/ale'

" 主题
Plug 'morhetz/gruvbox'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

" Git
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'

call plug#end()

" ============================================
" 插件配置
" ============================================

" NERDTree 配置
nnoremap <leader>n :NERDTreeToggle<CR>
let NERDTreeShowHidden=1

" fzf 配置
nnoremap <leader>f :Files<CR>
nnoremap <leader>g :Grep<CR>
nnoremap <leader>b :Buffers<CR>

" 主题配置
set termguicolors
set background=dark
colorscheme gruvbox

" airline 配置
let g:airline#extensions#tabline#enabled = 1
let g:airline_theme='gruvbox'

常用插件详解

vim-surround

快速操作包围符号:

ds"         " 删除双引号
cs"' " 双引号改单引号
ysiw" " 给单词添加双引号
yss" " 给整行添加双引号

vim-commentary

快速注释代码:

gcc         " 注释当前行
gcip " 注释当前段落
gcG " 注释到文件末尾

NERDTree

文件树浏览器:

<leader>n   " 打开/关闭文件树
? " 查看帮助(在 NERDTree 窗口中)

fzf

模糊文件查找:

<leader>f   " 查找文件
<leader>g " 文本搜索
<leader>b " 切换缓冲区
Ctrl+t " 在新标签页打开
Ctrl+x " 在水平分割打开
Ctrl+v " 在垂直分割打开

coc.nvim

代码补全引擎(需要安装语言服务器):

" 安装语言服务器
:CocInstall coc-python
:CocInstall coc-json
:CocInstall coc-html

" 常用快捷键
Tab " 确认补全
Ctrl+n " 下一个补全项
Ctrl+p " 上一个补全项
K " 显示文档
gd " 跳转到定义
gr " 显示引用

插件管理命令

命令作用
:PlugInstall安装新插件
:PlugUpdate更新插件
:PlugClean删除未使用的插件
:PlugStatus查看插件状态
:PlugDiff查看更新差异

性能优化

按需加载

" 只在特定文件类型加载
Plug 'fatih/vim-go', { 'for': 'go' }
Plug 'pangloss/vim-javascript', { 'for': 'javascript' }

" 只在执行命令时加载
Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' }

延迟加载

" 启动后延迟加载
Plug 'tpope/vim-fireplace', { 'for': 'clojure', 'on': [] }

" 手动触发加载
autocmd FileType clojure call plug#load('vim-fireplace')

练习

练习 1:安装 vim-plug

1. 按照说明安装 vim-plug
2. 在 .vimrc 中添加基础配置
3. 安装 2-3 个基础插件
4. 运行 :PlugInstall

练习 2:配置主题

1. 安装 gruvbox 主题
2. 配置 airline 状态栏
3. 设置 termguicolors
4. 选择你喜欢的配色

练习 3:文件浏览

1. 安装 NERDTree 和 fzf
2. 配置快捷键打开文件树
3. 使用 fzf 查找文件
4. 练习在文件间切换

下一步

掌握了插件管理后,你的 Vim 已经具备了现代编辑器的功能。建议从基础插件开始,逐步添加需要的功能,避免一次安装过多插件影响性能。

更多插件可以在 Vim Awesome 网站查找。