在 macOS 上优化 Vim 用于开发
简介
这篇指南将带你通过一系列步骤,如何在 macOS 上优化 Vim,使其具备 代码补全、语法高亮、代码格式化、代码片段管理、目录树等功能。此外,我们还会解决在安装过程中可能遇到的常见错误。
1. 安装必备工具
在开始 Vim 配置之前,我们需要确保你的 macOS 系统中安装了以下工具:
安装 Homebrew(如果未安装)
Homebrew 是 macOS 上的包管理器,它帮助我们安装各种软件包。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装 Vim
通过 Homebrew 安装最新版本的 Vim:
brew install vim
安装其他依赖工具
我们还需要安装一些额外的工具,例如 Node.js 和 npm(用于插件 coc.nvim
和 prettier
),以及其他必要工具:
brew install node
brew install dos2unix
brew install fzf
2. 安装插件管理器 - vim-plug
我们将使用 vim-plug 来管理 Vim 插件。通过以下命令来安装 vim-plug 插件管理器:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
3. 配置 ~/.vimrc
文件
如果不支持 Python 3,那么就不能安装UltiSnips 插件。检查 Vim 是否支持 Python 3:
vim --version | grep python
使用 Vim 打开配置文件:
vim ~/.vimrc
然后,粘贴以下配置到 ~/.vimrc
:
" 🔹 自动安装 vim-plug(如果未安装)
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall | source $MYVIMRC
endif
" 📌 基础配置
set number
set relativenumber
set cursorline
set mouse=a
set clipboard=unnamedplus
" 📝 代码缩进
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set smartindent
" 🔍 搜索优化
set ignorecase
set smartcase
set incsearch
set hlsearch
" 🚀 启动优化
set lazyredraw
set updatetime=300
" 🔗 启用文件类型检测 & 插件支持
filetype plugin indent on
" 📌 插件管理
call plug#begin('~/.vim/plugged')
" 代码补全(Coc.nvim,仍然尝试保留)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" 代码片段(改用 vim-vsnip,避免 UltiSnips 依赖 Python)
Plug 'hrsh7th/vim-vsnip'
Plug 'hrsh7th/vim-vsnip-integ'
" 目录树(文件管理)
Plug 'preservim/nerdtree'
" 状态栏美化(更清晰的状态栏)
Plug 'vim-airline/vim-airline'
" 代码格式化(仅保留 Prettier)
Plug 'prettier/vim-prettier', { 'do': 'npm install' }
call plug#end()
" 🚀 绑定快捷键
nnoremap <leader>n :NERDTreeToggle<CR>
nnoremap <leader>f :Files<CR>
" 代码补全(Coc.nvim)
inoremap <silent><expr> <TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
nnoremap <silent> gd <Plug>(coc-definition)
nnoremap <silent> K :call CocActionAsync('doHover')<CR>
nnoremap <leader>f :CocFix<CR>
" 代码格式化(只保留 Prettier)
nnoremap <leader>p :Prettier<CR>
上面是使用 macOS 自带 vim 需要的插件。如果你的 vim 支持 Python 3,那么可以安装下面的配置:
" 🔹 自动安装 vim-plug(如果未安装)
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall | source $MYVIMRC
endif
" 📌 基础配置
set number " 显示行号
set relativenumber " 相对行号
set cursorline " 高亮当前行
set mouse=a " 允许鼠标操作
set clipboard=unnamedplus " 复制同步到系统剪贴板
" 📝 代码缩进
set tabstop=4
set shiftwidth=4
set expandtab " 用空格替代 Tab
set autoindent
set smartindent
" 🔍 搜索优化
set ignorecase " 忽略大小写
set smartcase " 智能区分大小写
set incsearch " 增量搜索
set hlsearch " 高亮搜索结果
" 🚀 启动优化
set lazyredraw " 需要时才重绘,提高性能
set updatetime=300 " 降低 CursorHold 触发时间
" 🔗 启用文件类型检测 & 插件支持
filetype plugin indent on
" 📌 插件管理
call plug#begin('~/.vim/plugged')
" 代码补全 & 语法检查(必装)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" 语法解析 & 高亮(推荐)
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
" 代码片段
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
" 代码格式化(Python & JS)
Plug 'psf/black', { 'for': 'python' }
Plug 'prettier/vim-prettier', { 'do': 'npm install' }
" 目录树(文件管理)
Plug 'preservim/nerdtree'
" 状态栏美化(更清晰的状态栏)
Plug 'vim-airline/vim-airline'
call plug#end()
" 🚀 绑定快捷键
nnoremap <leader>n :NERDTreeToggle<CR> " <leader>n 打开/关闭目录树
nnoremap <leader>f :Files<CR> " <leader>f 搜索文件(需要 fzf)
" 代码补全(Coc.nvim)
inoremap <silent><expr> <TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
nnoremap <silent> gd <Plug>(coc-definition) " 跳转到定义
nnoremap <silent> K :call CocActionAsync('doHover')<CR> " 显示文档
nnoremap <leader>f :CocFix<CR> " 自动修复代码
" 代码格式化
nnoremap <leader>b :Black<CR> " Python 代码格式化
nnoremap <leader>p :Prettier<CR> " JS/TS/HTML 代码格式化
保存并退出:
:wq
4. 安装插件
打开 Vim 后,运行以下命令安装所有插件:
:PlugInstall
5. 安装 LSP(Coc.nvim)
安装需要的语言服务器,如 Python、C/C++、JavaScript:
:CocInstall coc-python coc-clangd coc-tsserver
6. 目录树(NERDTree)
使用快捷键打开或关闭 目录树:
<leader>n
(如果 leader
是 \
,那么 \n
将打开/关闭 NERDTree。)
7. 代码格式化(Prettier & Black)
\b " 格式化 Python 代码
\p " 格式化 JS/TS/HTML 代码
8. 语法解析 + 代码高亮(nvim-treesitter)
安装语法解析器(Python、JavaScript、C/C++ 等):
:TSInstall python javascript c cpp html css json
然后在 ~/.vimrc
文件中添加:
lua << EOF
require'nvim-treesitter.configs'.setup {
ensure_installed = "all",
highlight = { enable = true },
indent = { enable = true },
}
EOF
9. 终极优化
通过以下快捷键更快速地切换窗口:
nnoremap <C-h> <C-w>h
nnoremap <C-l> <C-w>l
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
常见错误及解决方案
错误 1: vim-prettier
Exit 状态 1
问题: vim-prettier
更新失败,出现 Exit status: 1
。
解决方案: 运行以下命令来解决依赖问题:
cd ~/.vim/plugged/vim-prettier
npm install --legacy-peer-deps
如果还是失败,强制安装:
npm install --force
然后返回 Vim,运行:
:PlugUpdate
错误 2: TSUpdate
不是编辑器命令
问题: 安装 nvim-treesitter
时出现 E492: Not an editor command: TSUpdate
。
解决方案: 这是因为 Neovim 是必须的,Vim 不支持 nvim-treesitter
。你可以安装 Neovim:
brew install neovim
然后使用 Neovim (nvim
而非 vim
) 打开配置文件并运行:
:TSInstall python javascript c cpp html css json
如果不想使用 Neovim,可以从 ~/.vimrc
删除 nvim-treesitter
插件,然后重新运行:
:PlugClean
:PlugInstall
总结
通过上述步骤,你的 macOS 上的 Vim 已经优化完成,具备了:
- 代码补全(Coc.nvim)
- 语法高亮(nvim-treesitter)
- 代码格式化(Prettier 和 Black)
- 代码片段管理(UltiSnips)
- 目录管理(NERDTree)
- 状态栏美化(Airline)
现在你可以享受一个 强大的 Vim 开发环境!🚀