我正在使用 vim 和vim-golang插件。这个插件带有一个名为 : 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