Как выполнить выбор или диапазон Vim в bash, не заменяя его?

12

Я хотел бы выбрать какой-то текст в vim, а затем выполнить его в bash. Я знаю следующую процедуру:

  1. выберите текст с помощью Vилиv
  2. :!!

Однако это заменяет выбор на вывод команды. Что если я не хочу этого?

Клаас ван Шельвен
источник

Ответы:

21

Введите :wкоманду следующим образом:

:w !command

Когда вы наберете его, оно будет выглядеть так:

:'<,'>w !command

Видеть

:help :w_c
garyjohn
источник
3
Это правильно, но будьте осторожны, чтобы не сделать :w! commandпо ошибке. Если команда - это программа, к которой у вас есть права на запись, она перезапишет программу, и вы не сможете отменить изменения, так как это был не открытый буфер.
Луч
5

В vim 8.0 вы можете выбрать диапазон строк и запустить :terminal bash. Откроется работающий терминал bashс вашим выбором в качестве стандартного.

:terminal node, :terminal ruby, :terminal pythonКажется , работать хорошо , как хорошо.

user1480704
источник