1

我在互联网上找到了以下代码片段,并想在自己的.vimrc.

augroup CodeFormatters
    autocmd!

    autocmd  BufReadPost,FileReadPost   *.py    :silent %!PythonTidy.py
augroup END

但是,我不太确定将PythonTidy.py脚本放在哪里,以便从任何地方都可以访问它。此外,我读到 using分别BufReadPre优于,这是真的吗?BufReadPostFileReadPre

4

2 回答 2

1

就目前而言,PythonTidy.py必须可以通过您的PATH. 如果你有一个方便的地方已经包含在那里,例如~/bin,把它放在那里。

或者,您可以将它放在.vim目录中的某个位置,并使用类似的东西expand('<sfile>:p:h')来解析 Vimscript 的目录,并从那里构建一个相对路径。

由于要使用:%!命令过滤读取缓冲区的内容,因此必须使用BufReadPost事件;使用BufReadPre,缓冲区尚未被读取,并且不会将任何内容发送到过滤器。

于 2012-11-12T11:18:32.880 回答
0

PythonTidy是一个命令行可执行文件:把它放在你的$PATH.

您也可以将其放在任何地方并在以下位置使用绝对路径autocmd

autocmd  BufReadPost,FileReadPost *.py :silent %!/path/to/PythonTidy.py
于 2012-11-12T11:20:42.880 回答