Vim 配置指南
Vim 用户可选择安装 https://github.com/prettier/vim-prettier(专为 Prettier 设计),或通用格式化引擎 https://github.com/sbdchd/neoformat / https://github.com/dense-analysis/ale(均支持 Prettier)。
https://github.com/prettier/vim-prettier 安装及用法详见 https://github.com/prettier/vim-prettier。
https://github.com/sbdchd/neoformat 推荐通过 Vim 插件管理器安装(如 https://github.com/junegunn/vim-plug):
" 安装 Neoformat 插件
Plug 'sbdchd/neoformat'
若需优先使用项目本地 Prettier(即 node_modules/.bin/prettier
),需设置:
" 启用 Node 本地模块优先
let g:neoformat_try_node_exe = 1
在支持的文件中执行 :Neoformat
或 :Neoformat prettier
即可运行 Prettier。
设置保存时自动格式化:
" JS文件保存时触发格式化
autocmd BufWritePre *.js Neoformat
可扩展自动化事件(组合使用效果更佳):
" 扩展触发事件:保存时、普通模式文本变更后、退出插入模式时
autocmd BufWritePre,TextChanged,InsertLeave *.js Neoformat
建议使用configuration.md,也可在 .vimrc
添加选项:
" 设置Prettier参数(注意空格需用\转义)
autocmd FileType javascript setlocal formatprg=prettier\ --single-quote\ --trailing-comma\ es5
" 启用formatprg参数
let g:neoformat_try_formatprg = 1
https://github.com/dense-analysis/ale 需 Vim 8+ 或 Neovim(依赖异步处理能力)。通过插件管理器安装:
" 安装ALE插件
Plug 'dense-analysis/ale'
优先使用本地 Prettier,启用语言修复器:
" 为JS/CSS启用Prettier修复器
let g:ale_fixers = {
\ 'javascript': ['prettier'],
\ 'css': ['prettier'],
\}
避免自动运行所有检查器:
" 仅运行显式配置的检查器
let g:ale_linters_explicit = 1
手动执行 :ALEFix
或在 .vimrc
配置保存时自动修复:
" 保存时自动修复
let g:ale_fix_on_save = 1
" 直接配置Prettier参数
let g:ale_javascript_prettier_options = '--single-quote --trailing-comma all'
https://github.com/neoclide/coc-prettier 需 neovim 或 vim8.1+,先安装 https://github.com/neoclide/coc.nvim:
" 安装coc.nvim
Plug 'neoclide/coc.nvim', {'branch': 'release'}
安装扩展并配置命令:
" 安装prettier扩展
:CocInstall coc-prettier
" 添加自定义命令
command! -nargs=0 Prettier :call CocAction('runCommand', 'prettier.formatFile')
在 coc-settings.json
配置保存时格式化:
{
"coc.preferences.formatOnSaveFiletypes": ["css", "markdown"]
}
手动运行方案
创建简易快捷键绑定(如 gp
触发):
" 手动执行格式化(注意语法错误会导致缓冲区被覆盖)
nnoremap gp :silent %!prettier --stdin-filepath %<CR>
注意
此方案缺陷:
- 代码存在语法错误时将清空缓冲区
- 无法保留光标位置
总结方案对比
推荐配置
方案 | 优势 | 适用场景 |
---|---|---|
ALE | 异步处理+精准语言控制 | 需要深度集成的大型项目 |
coc-prettier | VSCode同款配置体验 | Coc生态用户 |
Neoformat | 轻量级+灵活触发事件 | 简单项目快速配置 |
注意事项
- 项目规范:优先使用configuration.md保持团队统一
- 版本管理:插件方案需同步
.vimrc
配置 - 错误处理:手动方案需注意语法错误容错
- 扩展性:ALE支持300+语言,大型项目首选
- 迁移成本:coc-prettier可直接复用VSCode配置
常用工作流组合:
ALE自动保存格式化
+coc.nvim智能补全
+项目级Prettier配置