xDocxDoc
AI
前端
后端
iOS
Android
Flutter
AI
前端
后端
iOS
Android
Flutter
  • 关于

    • Prettier
    • 构建并强制执行
    • Prettier vs. Linters
    • 选项设计原理
    • 设计理念
  • 使用

    • 安装指南
    • 忽略代码
    • precommit
    • 插件
    • CLI
    • API
    • Browser
    • CI
  • 配置 Prettier

    • options
    • Configuration File
    • 共享配置
  • Editors

    • 编辑器集成
    • WebStorm 设置
    • Vim 配置指南
    • 监视文件变更
  • Misc

    • 技术实现细节
    • 生态
    • 企业解决方案

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>

注意

此方案缺陷:

  1. 代码存在语法错误时将清空缓冲区
  2. 无法保留光标位置

总结方案对比

推荐配置

方案优势适用场景
ALE异步处理+精准语言控制需要深度集成的大型项目
coc-prettierVSCode同款配置体验Coc生态用户
Neoformat轻量级+灵活触发事件简单项目快速配置

注意事项

  1. 项目规范:优先使用configuration.md保持团队统一
  2. 版本管理:插件方案需同步.vimrc配置
  3. 错误处理:手动方案需注意语法错误容错
  4. 扩展性:ALE支持300+语言,大型项目首选
  5. 迁移成本:coc-prettier可直接复用VSCode配置

常用工作流组合:
ALE自动保存格式化 + coc.nvim智能补全 + 项目级Prettier配置

最后更新: 2025/8/26 10:07
Prev
WebStorm 设置
Next
监视文件变更