Использование vim для редактирования того, что находится в моем буфере обмена, прежде чем помещать его в командную строку для выполнения - PullRequest
0 голосов
/ 28 февраля 2019

Довольно часто, когда я читаю некоторую документацию, а также делаю практическую работу в терминале, я хочу скопировать некоторый блок командного текста из документа, затем отредактировать его (например, заменить имя хоста и т. Д.), Затем вставитьэто к терминалу и выполнить его.Я могу сделать это с другим редактором или с временным файлом в моем текущем каталоге.Однако этот процесс громоздок.Я думаю, что видел, как кто-то достиг этого с несколько inline редактором vim.Суть в том, что он нажимает какую-то комбинацию клавиш, прямо в терминале открывается редактор vim с содержимым в буфере обмена, а затем он вносит изменения.После сохранения и выхода контент отображается на терминале.Все, что ему нужно сделать, это нажать Enter.К сожалению, я не могу спросить этого человека, потому что я видел это только мимоходом.Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Вы можете привязать «редактировать командную строку» к некоторому связыванию клавиш, я думаю, что по умолчанию это Ctrl-x Ctrl-e, тогда вы можете использовать регистр буфера обмена "+p или даже начать вставлять режим и набирать Ctrl-r +.после сохранения и выхода из редактора команда будет в вашей командной строке.

0 голосов
/ 28 февраля 2019

Вы можете определить псевдоним для vim, который вставляет регистр *, и перезаписывает команду сохранения, чтобы она сохранялась в регистр *.Однако есть более простой способ.

readline имеет режим vi, просто добавьте set editing-mode vi и set keymap vi-command к вашему .inputrc.

Теперь ваша readline находится в режиме vi, когда вы нажимаете<ESC>.v вызывает vim для редактирования текущей строки в вашем терминале.Но для простых вещей это даже не понадобится.Ваша readline теперь принимает cw, dw и т. Д. (Но только команды vi, без vim).

Это, конечно, только решение, если вы все равно хотите иметь команды vi вваш терминал.Но так как вы даже пытаетесь редактировать буфер обмена в vi, я думаю, что вы в порядке с этим.

...