我正在使用vim-jsbeautify,我认为它很棒。
但是我想在保存操作中添加重新格式化。目前我必须按Ctrl-f每次我想重新格式化。我试过
autocmd FileType html AutoFormatBuffer :call HtmlBeautify()<cr>
Run Code Online (Sandbox Code Playgroud)
但不知何故该命令是错误的,有人可以澄清一下吗?
正如@Ingo Karkat提到的那样。对于这种情况,在
~/.vim/ftplugin/html/main.vim
Run Code Online (Sandbox Code Playgroud)
并将该行添加到文件中
autocmd BufWritePre <buffer> call HtmlBeautify()
Run Code Online (Sandbox Code Playgroud)
您的命令 ( call HtmlBeautify()) 需要在保存前触发。:help autocmd-events列出所有可用的;BufWritePre是你想要的。所述{cmd}用于:autocmd为Ex命令,所以可以删除:(即从交换机正常模式到命令行模式),并且必须丢弃<CR>(这是唯一的映射):
autocmd BufWritePre <buffer> call HtmlBeautify()
Run Code Online (Sandbox Code Playgroud)
现在,您希望为每个打开的 HTML 文件安装该触发器。您尝试这样做的方法是:autocmd在FileType事件中使用另一个:
autocmd FileType html autocmd BufWritePre <buffer> call HtmlBeautify()
Run Code Online (Sandbox Code Playgroud)
但这就是文件类型插件的用途:
我建议将任何设置、映射和特定于文件类型的自动命令(例如这个)放入~/.vim/ftplugin/{filetype}_whatever.vim(或{filetype}/whatever.vim; cp. :help ftplugin-name) 中,而不是定义很多:autocmd FileType {filetype}; 它更干净,扩展性更好;但是,要求您拥有:filetype plugin on。
| 归档时间: |
|
| 查看次数: |
2051 次 |
| 最近记录: |