vim filters and stdout/stderr

Posted by ahe on Stack Overflow See other posts from Stack Overflow or by ahe
Published on 2010-04-04T19:59:40Z Indexed on 2010/04/04 20:03 UTC
Read the original article Hit count: 526

Filed under:
|

When I use :%! to run the contents of a file through a filter and the filter fails (it returns another code than 0) and prints an error message to stderr I get my file replaced with this error message. Is there a way to tell vim to skip the filtering if the filter returns an status code that indicates an error and/or ignore output the filter program writes to stderr?

There are cases where you want your file to replaced with the output of the filter but most often this behavior is wrong. Of course I can just undo the filtering with one keypress but it isn't optimal.

Also I have a similar problem when writing a custom vim script to do the filtering. I have a script that calls a filter program with system() and replaces the file in the buffer with its output but there doesn't seem to be a way to detect if the lines returned by system() where written to stdout or to stderr. Is there a way to tell them apart in vim script?

© Stack Overflow or respective owner

Related posts about vim

Related posts about vimscript