Neoformat
A (Neo)vim plugin for formatting code
...Also, by using setline(), marks, jumps, etc. are all maintained after formatting. Neoformat supports both sending buffer data to formatters via stdin, and also writing buffer data to /tmp/ for formatters to read that do not support input via stdin. If a formatter is either not configured to use stdin, or is not able to read from stdin, then buffer data will be written to a file in /tmp/neoformat/, where the formatter will then read from.