如何排查Vim中gq键突然调用rustfmt的问题并恢复默认行为?
调试与恢复Vim中gq默认注释重排行为
一、调试问题原因
- 检查格式化控制变量:在Rust文件缓冲区中执行以下命令,定位修改
gq行为的源头:set formatprg?:若输出为rustfmt --edition 2018,说明该变量被设置为调用外部格式化工具:set formatexpr?:如果该变量有赋值,也可能是它接管了格式化逻辑
- 排查插件影响:用
vim -u NONE启动无插件的Vim,打开Rust文件测试gq是否恢复正常。若正常,再逐个启用Rust相关插件(如rust.vim、coc-rust-analyzer等),找到触发问题的插件 - 检查配置文件:查看
~/.vimrc、~/.vim/ftplugin/rust.vim或~/.vim/after/ftplugin/rust.vim,确认是否存在针对Rust文件设置formatprg/formatexpr的自动命令或配置项,且为近两周新增/修改的内容
二、恢复默认行为
- 临时恢复:在当前Rust文件中执行以下命令,立即切换回Vim内置的注释重排逻辑
:setlocal formatprg=:setlocal formatexpr=
- 永久生效:在
~/.vim/after/ftplugin/rust.vim中添加以下内容,确保每次打开Rust文件时,都会覆盖插件或其他配置的设置setlocal formatprg= setlocal formatexpr= - 插件适配:如果是特定插件导致的,可在插件配置中关闭自动格式化功能(比如rust.vim中可设置
let g:rustfmt_format_on_save = 0),但直接在after/ftplugin中覆盖变量是更稳妥的方案
内容的提问来源于stack exchange,提问作者jacobsa
相关产品推荐
相关产品推荐

