Open vlcinsky opened 7 years ago
@vlcinsky you can use something like this:
my-equalprg
and give execution status to it (chmod +x my-equalprg
):#!/usr/bin/env bash
TMPFILE=$(mktemp).py
cat - > $TMPFILE \
&& pyformat --in-place $TMPFILE
cat $TMPFILE
.vimrc
file:autocmd FileType python setlocal equalprg=my-equalprg
The gotcha is that equalprg
setting writes to stdout and expects result in stdin.
@viniciusban thanks for the workaround.
What gotcha do you mean? Encoding troubles?
Sorry, I didn't express myself correctly.
It's not a "gotcha", but a characteristic. As equalprg
works with stdin and stdout we can write our own filter and do whatever we need.
Actually my current filter runs some utilities in a pipeline. The last one is yapf, btw. ;-)
yapf
has very similar command line interface aspyformat
but provides one additional one: pass a code via stdin and print result on stdout.Such a feature makes it very easy for integrating e.g. into
vim
editor by adding following line into.vimrc
file:and user may format the code of whole file:
or in visual mode (multiple lines selected):
pyformat
does not accept file on stdin thus it is not possible to use it in the same style. Adding such feature topyformat
would make use simpler.