Как эффективно отправить текст, введенный в командной строке, в системный буфер обмена без использования мыши?

Скажем, я набрал следующую длинную команду в командной строке

 $ some very long command that I want to copy to the clipboard

Как я могу эффективно вывести это в системный буфер обмена? Я использую Gnome Terminal 2.23.1.

Я знаю, что могу взять мышь, выделить ее и скопировать, но я хочу общее решение для клавиатуры.

Было бы также хорошо, если бы оно распространялось на несколько программ командной строки.

Например, в bash в режиме vi я могу нажать v, а затем отредактировать команду в vim и, таким образом, использовать функцию копирования Vim в буфер обмена, но это не работает при использовании R в командной строке. Это также немного медленно.

Мне бы хотелось, чтобы в режиме vi я мог нажать yy и скопировать содержимое строки в системный буфер обмена, но, похоже, это не работает. Кроме того, кажется, что любые команды восстановления не копируют содержимое в системный буфер обмена; они, кажется, копируют только в буфер, используемый bash.

ОБНОВЛЕНИЕ:

После публикации я нашел

14
задан 23 May 2017 в 15:39

3 ответа

Так завершения я имею смочь добраться, при помощи истории и xclip в соединении, делающем это

echo !! | xclip

Это поставит последнюю команду буфер обмена центральной кнопки. Я все еще ищу что-то лучше хотя, поскольку я хотел бы свалить его к одной команде. Однако я зависаюсь, потому что история не функционирует в сценариях оболочки, и я не знаю, что существует способ использовать !! правильно в псевдониме. Конечно, это, кажется, не вполне, что Ваша просьба о моем намерении должна использовать это для того, чтобы сделать заметки того, что я делаю. Какие-либо мысли?

1
ответ дан 23 May 2017 в 15:39

Вы также можете использовать менеджер буфера обмена, как parcellite. Это менеджер буфера обмена GTK +, который также имеет возможности буфера обмена из командной строки

Вы можете использовать его из командной строки:

echo "some very long command that I want to copy to the clipboard" | parcellite
##or##
parcellite "some very long command that I want to copy to the clipboard"

Он не установлен по умолчанию, и вам придется установить parcellite по sudo apt-get install parcellite

0
ответ дан 23 May 2017 в 15:39

Вы можете использовать Ctrl + Shift + C для копирования и Ctrl + Shift + V для вставки в любом месте терминала.

0
ответ дан 23 May 2017 в 15:39

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

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