Скажем, что текущая строка в Vim содержит:
ls /home
(или любая другая команда оболочки). Итак, как быстро отправить эту строку в оболочку (bash) и прочитать результаты в Vim? И без использования плагинов.
Самый простой способ это поставить :! в начале строки (с I:!), затем yy чтобы вставить строку в безымянный регистр и, наконец, использовать @" для вызова безымянного (") регистра в качестве макроса. Для vim, это в точности эквивалентно вводу
:!ls /home
в обычном режиме. Если, как и я, у вас есть ; и : переключитесь в вашем .vimrc для нормального режима, вам придется вместо этого вставить точку с запятой.
Вероятно, можно изменить регистр на месте, а не добавлять его к фактической строке.
Это также возможно сделать, нажав y$ yanking до конца строки (без вышеуказанного редактирования), затем набрав
:!<c-r>"
...(<c-r> означает Ctrl+r), который расширится до
:!ls /home
(или какой бы командой вы ни дернули). Вам нужно использовать y$ а не yy потому что в противном случае он расширится до 
:ls /home^M
^M там, представляющий новую строку; это достаточно легко удалить с помощью одного возврата.
Этот второй метод может быть немного быстрее, но все, что включает в себя клавишу Ctrl, кажется мне немного непривлекательным.
Вы можете отправить текущую строку как команду, просто вызвав:
:.!bash -e
Строка в открытом буфере будет заменена выводом этой команды.
Если вы предпочитаете сохранить исходную строку, вы можете отправить вывод в другой буфер с помощью:
:.w !bash -e