我设置了我的vim编辑器(我使用MacVim)在焦点丢失时自动保存文件:
autocmd FocusLost * silent! wall
我还使用这个自动命令自动从python文件中删除尾随空格:
autocmd BufWritePre *.py :%s/\s\+$//e
当我手动保存文件时(通过键入:w 或按⌘s),此自动命令可以正常工作但是它没有被执行(即空格是当我切换到另一个应用程序并自动写入缓冲区时,没有剥离。
如何修改这些自动命令以使它们协同工作?
答案 0 :(得分:3)
您需要将FocusLost自动命令更改为:
autocmd FocusLost * nested silent! wall
有关详细信息,请参阅:h autocmd-nested
。
答案 1 :(得分:1)
我无法在图形Vim中测试它,但您可以尝试一些选项:
autocmd BufWritePre,FocusLost *.py ...
autocmd BufWritePre *.py :execute "%s/\s\+$//e" | doautocmd FocusLost %