Я хотел бы редактировать команды оболочки из vim и выполнять их из vim. В настоящее время я использую !!sh
(передает текущую строку в команду sh), но это удаляет саму строку.
Можно ли выполнить команду в оболочке и вставить результат под этой строкой?
Как Clausi, на который указывают, yyp!!sh
рывки (копии) текущая строка к регистру, вставляет ту строку ниже исходной и заменяет нижнюю часть один выводом команды.
Для сохранения нажатий клавиш, можно отобразить это действие путем включения следующей строки ~/.vimrc
файл:
карта <F5> yyp!! sh <CR> <Esc>
Этот путь каждый раз F5 нажимается в командном режиме, строка будет выполняться, и результат покажут ниже строки.
Введите команду оболочки в буфере, например last | head
,
и в режиме командной строки :read !^R.
Конечно, вместо буквального ввода ^R
, нажмите клавишу CTRL-R
комбинация.
Посмотрите это в :help c_ctrl-r
. .
означает «последний вставленный текст».
Если команда состоит из одного слова, например vnstat
,
, поместите курсор на это слово и введите :read !<cword>
.
Как насчет копирования / вставки строки перед выполнением (что-то вроде yyp!!sh
)?