vim 如何使用 prettier-eslint 根据 eslint 配置格式化代码

Doyle
  • 844

我想在 vim 上用 prettier 格式化代码,但是发现 vim-prettier 插件并不能根据不同项目的 eslintrc 做出相应的格式化,所以想直接通过 vim 的方式来进行格式化。

按照 prettier-eslint-cli 文档来看,好像是可以这么去用

Vim users can add the following to their .vimrc:

autocmd FileType javascript set formatprg=prettier-eslint\ --stdin

This makes prettier-eslint-cli power the gq command for automatic formatting without any plugins. You can also add the following to your .vimrc to run prettier-eslint-cli when .js files are saved:

autocmd BufWritePre *.js :normal gggqG

我不想在保存文件的时候去格式化文件,所以第二种我没试过。我用第一种方法,发现是要先选中代码,然后再输入命令 gq才对选中文件格式化,这样有个问题就是————这样传给 prettier-eslint-cli 的就不是一个具体的文件。会导致 prettier-eslint-cli 无法根据文件路径去索引 eslintrc 配置文件,从而无法实现根据 eslintrc 配置文件格式化代码的需求。

下面可以贴一下,我在 vim 运行后的调试信息

clipboard.png

从图中第一行就能看出 getting eslint config for file at 'undefined',而如果在控制台中直接输命令行来格式化文件prettier-eslint index.js -l debug,就不是 undefined 了

clipboard.png

所以,哪位 vim 方面的大神,能根据帮我实现功能呢,有没有办法能让 prettier-eslint 知道当前文件的信息,从而让其能找到 eslintrc 配置

回复
阅读 5.7k
1 个回答

我发现,可以用一下方式实现

:silent !prettier-eslint % --write

这样做总是要弹窗一个 控制台窗口,很是烦人,能不能直接就在后台跑完命令,不弹出控制台窗口

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏