How can I execute a Vim selection or range in bash without replacing it?
I'd like to select some text in vim and then execute it in bash. I know of the following procedure:
- select text using
V
orv
:!!
However, this replaces the selection with the output of the command. What if I don't want that?
Solution 1:
Type the :w
command like this:
:w !command
As you type it, it will appear like this:
:'<,'>w !command
See
:help :w_c
Solution 2:
In vim 8.0, you can select a range of lines and run :terminal bash
. This will open a terminal running bash
with your selection as stdin.
:terminal node
, :terminal ruby
, :terminal python
seem to work nicely as well.