我在用vim-jsbeautify我认为这太棒了。
不过,我想在保存操作中添加重新格式化。目前,每次我想重新格式化时,我都必须按Ctrl- 。我试过了f
autocmd FileType html AutoFormatBuffer :call HtmlBeautify()<cr>
但不知何故该命令是错误的,有人可以澄清一下吗?
更新
就像@Ingo Karkat提到。在这种情况下,在
~/.vim/ftplugin/html/main.vim
并将该行添加到文件中
autocmd BufWritePre <buffer> call HtmlBeautify()
答案1
call HtmlBeautify()
您需要在保存之前触发命令 ( )。:help autocmd-events
列出所有可用的;BufWritePre
是您想要的。for{cmd}
是:autocmd
Ex 命令,这样你就可以删除:
(从正常模式到命令行模式),并且必须删除<CR>
(这仅适用于映射):
autocmd BufWritePre <buffer> call HtmlBeautify()
现在,您希望为每个打开的 HTML 文件安装该触发器。您尝试的方法是:autocmd
在事件上使用另一个触发器FileType
:
autocmd FileType html autocmd BufWritePre <buffer> call HtmlBeautify()
但这就是文件类型插件用于:
我建议将所有设置、映射和特定于文件类型的自动命令(例如这个)放入~/.vim/ftplugin/{filetype}_whatever.vim
(或{filetype}/whatever.vim
;cp。:help ftplugin-name
),而不是定义大量的:autocmd FileType {filetype}
;它更干净并且扩展性更好;但是要求你有:filetype plugin on
。