私はvim-golangプラグインでvimを使っています。このプラグインにはa function called :Fmtが付属しており、コマンドライン実行ファイルgofmtを使用してソースコードを「再フォーマット」します。vim - 保存時にgolangのソースコードを自動的にフォーマットする
私はファイルを保存するたびに:Fmt関数を呼び出すので、連続的に再フォーマットされます。私はこれがautocmd指示で行われるべきだと思います。しかし、私は2つの疑問があります:
- 私は関数を実行する方法を見つけることができませんでした。私はautmmd行の最後に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
うわー、信じられないほど広範な答え、ありがとう!私は2番目のオプションを使用して終了しました - 私はファイルタイプをまったくリセットするつもりはありません。ありがとう! – kikito
'Fmt'コマンドからの通常の出力が必要な場合は、' silent'を追加することができます( '' X lines filtered''が表示されたままです)。 'autocmd FileType go autocmd BufWritePreサイレントFmt' –
djd
' vim -gocode'プラグインhttps://github.com/Blackrush/vim-gocode/blob/master/ftplugin/go/fmt.vim#L20 –