VIM格式化程序文件的位置

时间:2012-11-12 11:07:40

标签: formatting vim

我在互联网上找到了以下代码段,并希望在我自己的.vimrc中使用它。

augroup CodeFormatters
    autocmd!

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

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

2 个答案:

答案 0 :(得分:1)

目前,PythonTidy.py必须可以PATH访问~/bin。如果你有一个方便的位置,例如.vim,只需将其放在那里。

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

如果要使用BufReadPost命令过滤读取缓冲区内容,则必须使用BufReadPre事件;使用{{1}}时,缓冲区尚未被读取,并且不会向筛选器发送任何内容。

答案 1 :(得分:0)

PythonTidy是命令行可执行文件:将其放在$PATH中的某个位置。

你也可以把它放在任何地方,并在autocmd

中使用绝对路径
autocmd  BufReadPost,FileReadPost *.py :silent %!/path/to/PythonTidy.py