我正在使用Chiel92/vim-autoformat
和ntpeters/vim-better-whitespace
。第一个是autoformat代码,第二个是删除额外的空格。他们两个我希望使用autocmd在保存文件上调用它们。似乎我没有正确使用autocmd。我希望有人可以帮助我,因为我对vimL知之甚少。
我曾经有以下内容在保存时启用autoformat:
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中时,至少其中一个不起作用取决于在脚本中首先出现的人。
这是我倾倒后的内容: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
它们都可以互相协作。
有人可以帮我理解这里发生了什么吗?谢谢!