Vim 环境配置
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
Vim 用户可选择安装专为 Prettier 设计的 vim-prettier,或支持 Prettier 的通用代码检查/格式化引擎 Neoformat 和 ALE。
vim-prettier
安装和使用说明请参阅 vim-prettier 的 README 文档。
Neoformat
推荐通过 Vim 插件管理器(如 vim-plug)安装 Neoformat:
Plug 'sbdchd/neoformat'
若需 Neoformat 使用项目本地安装的 Prettier(即优先使用 node_modules/.bin/prettier 而非全局 $PATH 中的 prettier),需设置 neoformat_try_node_exe 选项:
let g:neoformat_try_node_exe = 1
在支持的文件中执行 :Neoformat 或 :Neoformat prettier 即可运行 Prettier。
如需在保存时自动运行 Prettier:
autocmd BufWritePre *.js Neoformat
还可通过设置其他事件的 autocmd 来增加代码格式化频率,以下是两个常用事件:
-
TextChanged:普通模式下文本发生更改后触发 -
InsertLeave:退出插入模式时触发
例如,可将上述事件与 BufWritePre 组合使用:
autocmd BufWritePre,TextChanged,InsertLeave *.js Neoformat
详细信息请参阅 Vim 中的 :help autocmd-events。
推荐使用配置文件,也可在 .vimrc 中添加选项:
autocmd FileType javascript setlocal formatprg=prettier\ --single-quote\ --trailing-comma\ es5
" Use formatprg when available
let g:neoformat_try_formatprg = 1
Prettier 选项中的每个空格需用 \ 转义。
ALE
ALE 需要 Vim 8 或 Neovim 环境,因其依赖两者提供的异步处理能力。
推荐通过 Vim 插件管理器(如 vim-plug)安装 ALE:
Plug 'dense-analysis/ale'
更多安装说明请参见 ALE 仓库。
ALE 将优先使用项目本地安装的 Prettier,其次才会查找全局安装版本。
为使用的语言启用 Prettier 修复功能:
let g:ale_fixers = {
\ 'javascript': ['prettier'],
\ 'css': ['prettier'],
\}
ALE 同时支持_linter_(代码检查器)和_fixer_(修复器)。若未指定运行哪些_linter_,所有支持语言的可用工具都将被执行,可能导致文件格式正确但出现大量检查错误。如需禁用此行为,可配置 ALE 仅运行显式指定的 linter(详见 FAQ):
let g:ale_linters_explicit = 1
在 JavaScript 或 CSS 文件中执行 :ALEFix 即可运行 Prettier。
如需在保存时自动运行 Prettier:
let g:ale_fix_on_save = 1
推荐使用配置文件,也可在 .vimrc 中添加选项:
let g:ale_javascript_prettier_options = '--single-quote --trailing-comma all'
coc-prettier
coc.nvim 的 Prettier 扩展,需要 neovim 或 vim8.1 支持。 使用你喜欢的插件管理器安装 coc.nvim,例如 vim-plug:
Plug 'neoclide/coc.nvim', {'branch': 'release'}
并通过命令安装 coc-prettier:
CocInstall coc-prettier
在你的 init.vim 或 .vimrc 中设置 Prettier 命令:
command! -nargs=0 Prettier :call CocAction('runCommand', 'prettier.formatFile')
更新 coc-settings.json,设置需要保存时格式化的语言:
{
"coc.preferences.formatOnSaveFiletypes": ["css", "markdown"]
}
coc-prettier 的配置与 prettier-vscode 相同。通过 :CocConfig 打开 coc-settings.json 可获取自动补全支持。
手动运行
如需基础方案,可创建自定义按键绑定。本例使用 gp(助记:"get pretty")在当前活动缓冲区运行 prettier(含选项):
nnoremap gp :silent %!prettier --stdin-filepath %<CR>
注意:若代码存在语法错误,整个缓冲区将被替换为错误信息。需按 u 恢复代码。
此方法的另一缺点是光标位置无法保留。