如何在vim中使用pythontidy

gui*_* 桂林 5 vim

我现在使用的是,

autocmd BufWritePost *.py !python PythonTidy.py % %
Run Code Online (Sandbox Code Playgroud)

它确实调用了 tidy programe 并更改了文件,但是 vim 不会重新加载新文件。

而且我不想为它安装另一个插件。

======================注意:我发现这个功能很危险,如果命令失败,PythonTidy 将输出一个空文件,这意味着如果你有语法错误,除非按“u”获取文件,否则您将丢失文件,但在修复语法错误之前无法保存。

我现在在 pylint 完成后手动调用 :!PythonTidy % % 。

小智 1

基于:帮助:e:

                                                        *:e* *:编辑*
:e[dit] [++opt] [+cmd] 编辑当前文件。这对于重新编辑很有用
                        当前文件,当它在 Vim 外部被更改时。
                        当对当前内容进行更改时,此操作会失败
                        缓冲区和“autowriteall”未设置或文件无法设置
                        被写下来。
                        另请参阅 |++opt| 和|+cmd|。
                        {Vi:没有 ++opt}

因此,您需要在外部更新文件后使用 :e 。然而, :!不允许你使用 | 通常(请参阅 :help :!),因此您需要将其包装:

autocmd BufWritePost *.py 执行 "!python PythonTidy.py % %" | e

(:autocmd 通常也不解释 |,这就是为什么你不需要再次转义它。)