Vim: Pipe selected text to shell cmd and receive output on vim info/command line

ikwyl6 picture ikwyl6 · Apr 4, 2010 · Viewed 30.2k times · Source

I want to pipe the selected text to a shell command and receive the one-line output from this shell command on the vim info/command line?

What I'm really trying to do: Pipe the selected text to a pastebin-type shell command and I want to receive the output of the shell cmd (which is the http link to the pastebin). Is this possible?

Answer

Epeli picture Epeli · Mar 21, 2011

For multi line version you can do this after selecting the text:

:'<,'>:w !command<CR>

You can map it to simple visual mode shortcut like this:

xnoremap <leader>c <esc>:'<,'>:w !command<CR>

Hit leader key + c in visual mode to send the selected text to a stdin of the command. stdout of the command will be printed below vim's statusbar.

Real world example with CoffeeScript:

https://github.com/epeli/vimconfig/commit/4047839c4e1c294ec7e15682f68563a0dbf0ee6d