我想在保存
上调用this autoformatting插件这是我的自动命令:
autocmd BufWrite *.css,*.html,*.js,*.py :Autoformat<CR>
当我保存没有任何反应时,如果我手动调用:Autoformat,则autoformatter会运行。
我做错了什么?
答案 0 :(得分:4)
您已经找到了解决方案 - 这里有解释:
<CR>
用于映射,其工作方式类似于记录的键入序列序列,因此您需要使用:
启动命令行模式,并以{{结尾1}}。 autocmd采用 Ex命令,因此<CR>
被视为(无效)参数。您也不需要<CR>
,但这不会造成伤害。
如:
所示,这是:help BufWrite
的同义词。
BufWritePre
所以,这是推荐的形式:
BufWrite or BufWritePre Before writing the whole buffer to a file.
答案 1 :(得分:1)
根据我的经验,您有时需要将其包围在augroup
augroup autoFormat
autocmd BufWrite *.css,*.html,*.js,*.py :Autoformat<CR>
augroup END
我不知道为什么,但它对我有用!从技术上讲,autocmd
应该单独工作,但有时它不会。此外,在GitHub页面上,它表示使用:Autoformat<CR><CR>
,也许可以试试。
答案 2 :(得分:1)
出于某种原因,我不得不摆脱回车并更改为BufWritePre(尽管CR是主要问题,BufWritePre只是确保在写入缓冲区之前更改它而不是之后保存):
autocmd BufWritePre *.css,*.html,*.js,*.py :Autoformat
为什么,我不知道?