1

I found the following code snippet on the internet, and want to use it in my own .vimrc.

augroup CodeFormatters
    autocmd!

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

However, I'm not quite sure where to put the PythonTidy.py script, so that it is accessible from everywhere. Furthermore I read that using BufReadPre is better than BufReadPost, respectively FileReadPre, is that true?

4

2 に答える 2

1

現状では、PythonTidy.pyからアクセスできる必要がありますPATH。そこに既に含まれている便利な場所がある場合、たとえば~/bin、そこに置くだけです。

または、ディレクトリのどこかに配置し、Vimscript のディレクトリを解決するなどの.vim方法を使用して、そこから相対パスを作成することもできます。expand('<sfile>:p:h')

:%!コマンドで読み取りバッファの内容をフィルタリングしたい場合は、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 に答える