在 macOS 上优化 Vim 用于开发

简介

这篇指南将带你通过一系列步骤,如何在 macOS 上优化 Vim ,使其具备 代码补全、语法高亮、代码格式化、代码片段管理、目录树等功能。此外,我们还会解决在安装过程中可能遇到的常见错误。


1. 安装必备工具

在开始 Vim 配置之前,我们需要确保你的 macOS 系统中安装了以下工具:

安装 Homebrew(如果未安装)

Homebrew 是 macOS 上的包管理器,它帮助我们安装各种软件包。

bash 复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装 Vim

通过 Homebrew 安装最新版本的 Vim:

bash 复制代码
brew install vim

安装其他依赖工具

我们还需要安装一些额外的工具,例如 Node.js 和 npm (用于插件 coc.nvimprettier),以及其他必要工具:

bash 复制代码
brew install node
brew install dos2unix
brew install fzf

2. 安装插件管理器 - vim-plug

我们将使用 vim-plug 来管理 Vim 插件。通过以下命令来安装 vim-plug 插件管理器:

bash 复制代码
curl -fLo ~/.vim/autoload/plug.vim --create-dirs     https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

3. 配置 ~/.vimrc 文件

使用 Vim 打开配置文件:

bash 复制代码
vim ~/.vimrc

然后,粘贴以下配置到 ~/.vimrc

vim 复制代码
" 🔹 自动安装 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 代码格式化

保存并退出:

vim 复制代码
:wq

4. 安装插件

打开 Vim 后,运行以下命令安装所有插件:

vim 复制代码
:PlugInstall

5. 安装 LSP(Coc.nvim)

安装需要的语言服务器,如 Python、C/C++、JavaScript

vim 复制代码
:CocInstall coc-python coc-clangd coc-tsserver

6. 目录树(NERDTree)

使用快捷键打开或关闭 目录树

vim 复制代码
<leader>n

(如果 leader\,那么 \n 将打开/关闭 NERDTree。)


7. 代码格式化(Prettier & Black)

vim 复制代码
\b  " 格式化 Python 代码
\p  " 格式化 JS/TS/HTML 代码

8. 语法解析 + 代码高亮(nvim-treesitter)

安装语法解析器(Python、JavaScript、C/C++ 等):

vim 复制代码
:TSInstall python javascript c cpp html css json

然后在 ~/.vimrc 文件中添加:

vim 复制代码
lua << EOF
require'nvim-treesitter.configs'.setup {
  ensure_installed = "all",
  highlight = { enable = true },
  indent = { enable = true },
}
EOF

9. 终极优化

通过以下快捷键更快速地切换窗口:

vim 复制代码
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

解决方案: 运行以下命令来解决依赖问题:

bash 复制代码
cd ~/.vim/plugged/vim-prettier
npm install --legacy-peer-deps

如果还是失败,强制安装:

bash 复制代码
npm install --force

然后返回 Vim,运行:

vim 复制代码
:PlugUpdate

错误 2: TSUpdate 不是编辑器命令

问题: 安装 nvim-treesitter 时出现 E492: Not an editor command: TSUpdate

解决方案: 这是因为 Neovim 是必须的,Vim 不支持 nvim-treesitter。你可以安装 Neovim

bash 复制代码
brew install neovim

然后使用 Neovim (nvim 而非 vim) 打开配置文件并运行:

vim 复制代码
:TSInstall python javascript c cpp html css json

如果不想使用 Neovim,可以从 ~/.vimrc 删除 nvim-treesitter 插件,然后重新运行:

vim 复制代码
:PlugClean
:PlugInstall

总结

通过上述步骤,你的 macOS 上的 Vim 已经优化完成,具备了:

  • 代码补全(Coc.nvim)
  • 语法高亮(nvim-treesitter)
  • 代码格式化(Prettier 和 Black)
  • 代码片段管理(UltiSnips)
  • 目录管理(NERDTree)
  • 状态栏美化(Airline)

现在你可以享受一个 强大的 Vim 开发环境!🚀

相关推荐
CHEN5_0220 小时前
【CouponHub项目开发】EasyExcel解析Excel并使用线程池异步执行和延时队列兜底
java·数据库·excel
我想起个名字20 小时前
sqlserver2008导入excel表数据遇到的问题
sqlserver·excel
Metaphor69220 小时前
Java 如何在 Excel 中添加超链接?使用 Spire.XLS for Java 轻松实现
java·经验分享·excel
qyvlik20 小时前
Mac 使用 softhsm
macos·hsm·softhsm
Digitally1 天前
如何轻松地将联系人从 Mac 同步到 iPhone
macos·ios·iphone
JAVA不会写1 天前
EasyExcel:阿里开源的高效 Excel 处理工具,轻松解决 POI 内存溢出问题
excel
2501_928094651 天前
PDF Reader 编辑阅读工具(Mac中文)
macos·pdf·mac
他们都不看好你,偏偏你最不争气1 天前
【iOS】对象复制与属性关键字
macos·ios·objective-c·cocoa·面向对象
Someone_sky1 天前
Loopback for Mac:一键打造虚拟音频矩阵,实现跨应用音频自由流转
macos·音视频
Pocker_Spades_A1 天前
Python快速入门专业版(一):Windows/macOS/Linux 系统环境搭建(附常见报错解决)
windows·python·macos