I am trying to redirect the output of a bash command into a new file.
If I try the pipe as below :
ls -la | vim
Bash shows me the errors :
Vim: Error reading input, exiting...
Vim: preserving files...
Vim: Finished.
I know that I can open Vim and then use :
:r !ls -la
But is there a way to do this in bash itself, so that Vim is opened and the output is pasted there automatically?
Best Answer
You can use process substitution (this also works with applications that can't read from
STDIN
):Or use
vim
's function to read fromSTDIN
: