私はvim-golangプラグインでvimを使用しています。このプラグインには、コマンドライン実行可能ファイルであるgofmtを使用してソースコードを「再フォーマット」する:Fmtという関数が付属しています。
ファイルを保存するたびに:Fmt関数を呼び出したいので、ファイルは継続的に再フォーマットされます。これはautocmdディレクティブで行う必要があると思います。しかし、私には2つの疑問があります。
- 関数を実行する方法が見つかりませんでした。autocmd行の最後にFmtと:Fmtを書いてみましたが、うまくいかなかったようです。「電話」のような何かが恋しいと思います。
- これは、ファイルタイプが「go」のファイルを保存するときにのみ発生するようにします。これらの2つの条件を組み合わせる方法がわかりません。ファイルの種類に応じて変数をアクティブ化できます。また、ファイルを保存するたびに、末尾のスペースを削除するなどの小さな作業を行うことができますが、別々に行うことができます。
だからこれは私がこれまでに持っているものです:
" 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