0

と の両方Chiel92/vim-autoformatを使用していntpeters/vim-better-whitespaceます。1 つ目はオートフォーマット コード用で、2 つ目は余分な空白を削除するためのものです。どちらも autocmd を使用して、保存ファイルでそれらを呼び出すことを望んでいます。autocmd を正しく使用していないようです。vimLについての知識がほとんどないので、誰かが私を助けてくれることを願っています.

保存時にオートフォーマットを有効にするために、以前は次のものがありました。

Plugin 'Chiel92/vim-autoformat'
let auto_format_type_list = ['c', 'cpp', 'py']
autocmd BufWritePre * if index(auto_format_type_list, &ft) >= 0 | Autoformat | endif

また、保存時に余分な空白を取り除く「ntpeters/vim-better-whitespace」も使用しています。

Plugin 'ntpeters/vim-better-whitespace'
" turn on by default for all filetypes
autocmd BufWritePre * StripWhitespace

問題は、それぞれが単独で完全に機能することです。しかし、それらを .vimrc にまとめると、スクリプトの最初に現れる人によっては、少なくとも 1 つが機能しなくなります。

:au BufWritePre をダンプした後の結果は次のとおりです。

:au bufwritepre
--- Auto-Commands ---
BufWrite
    *         if index(auto_format_type_list, &ft) >= 0 | Autoformat | endif
              StripWhitespace

アップデート ...

しばらく遊んだ後、保存時に自動フォーマットする方法を変更することで、次のことがわかりました。

 autocmd BufWritePre * call Determine_if_auto_format()
 function! Determine_if_auto_format()
   let auto_format_type_list = ['c', 'cpp', 'py']
   if index(auto_format_type_list, &ft) >= 0
     Autoformat
   endif
 endfunction

両方とも相互に連携できます。

誰かがここで何が起こっているのかを理解するのを手伝ってくれますか? ありがとう!

4

0 に答える 0