Как выполнить команду оболочки в Vim и вывести результат ниже?

Я хотел бы редактировать команды оболочки из vim и выполнять их из vim. В настоящее время я использую !!sh (передает текущую строку в команду sh), но это удаляет саму строку.

Можно ли выполнить команду в оболочке и вставить результат под этой строкой?

4
задан 27 January 2011 в 17:11

3 ответа

Как Clausi, на который указывают, yyp!!sh рывки (копии) текущая строка к регистру, вставляет ту строку ниже исходной и заменяет нижнюю часть один выводом команды.

Для сохранения нажатий клавиш, можно отобразить это действие путем включения следующей строки ~/.vimrc файл:

карта <F5> yyp!! sh <CR> <Esc>

Этот путь каждый раз F5 нажимается в командном режиме, строка будет выполняться, и результат покажут ниже строки.

7
ответ дан 27 January 2011 в 17:11

Введите команду оболочки в буфере, например last | head,
и в режиме командной строки :read !^R.
Конечно, вместо буквального ввода ^R, нажмите клавишу CTRL-R комбинация.
Посмотрите это в :help c_ctrl-r. . означает «последний вставленный текст».
Если команда состоит из одного слова, например vnstat,
, поместите курсор на это слово и введите :read !<cword>.

0
ответ дан 27 January 2011 в 17:11

Как насчет копирования / вставки строки перед выполнением (что-то вроде yyp!!sh)?

0
ответ дан 27 January 2011 в 17:11

Другие вопросы по тегам:

Похожие вопросы: