我正在使用带有vim-golang插件的vim.这个插件附带a function called :Fmt,它使用gofmt(一个命令行可执行文件)"重新格式化"源代码.
我想在每次保存文件时调用:fmt函数,因此它会不断地重新格式化.我认为这应该通过autocmd的指令来完成.但我有两个疑问:
- 我找不到执行该函数的方法.我试着在autocmd行的末尾写Fmt和:Fmt,但似乎不起作用.我想我错过了什么,比如"电话".
- 我希望只有在保存文件类型为"GO"的文件时才会发生这种情况.我不知道如何将这两个条件结合起来--我可以根据文件类型激活变量,也可以在保存文件时单独执行一些小操作,比如删除尾随空格.
这就是我到目前为止所掌握的情况:
" I can set variables for go like this
autocmd FileType go setlocal noexpandtab shiftwidth=4 tabstop=4 softtabstop=4 nolist
" I can clean trailing spaces(conserving cursor position) on save like this
autocmd BufWritePre * kz|:%s/\s\+$//e|'z
" None of these worked:
autocmd BufWritePre,FileType go Fmt
autocmd BufWritePre,FileType go :Fmt