10

I'd like to select some text in vim and then execute it in bash. I know of the following procedure:

  1. select text using V or v
  2. :!!

However, this replaces the selection with the output of the command. What if I don't want that?

17

Type the :w command like this:

:w !command

As you type it, it will appear like this:

:'<,'>w !command

See

:help :w_c
  • 3
    This is correct, but take care not to do :w! command by mistake. If command is a program you have write access to, it'll overwrite the program, and you won't be able to undo the change since that wasn't the buffer that was open. – Ray Oct 12 '16 at 19:26
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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.