Как я могу скопировать вывод команды прямо в буфер обмена? - PullRequest
436 голосов
/ 27 февраля 2011

Как я могу передать вывод команды в буфер обмена и вставить его обратно при использовании терминала? Например:

cat file | clipboard

Ответы [ 13 ]

0 голосов
/ 24 марта 2019

Просто для того, чтобы охватить крайний случай :) и потому, что заголовок вопроса спрашивает (по крайней мере, сейчас), как скопировать вывод команды непосредственно в буфер обмена.

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

Для этого сценария мы можем использовать либо gdm, либо аналогичную утилиту мыши и выбирать с помощью мыши. apt-get install gdm и затем либо правый клик, либо комбинации Cntrl + Shift + c и Cntrl + Shift + v для копирования и вставки в терминал

Или, который является для меня предпочтительным методом (поскольку мышь не может правильно выбрать внутри одной панели, когда у вас есть несколько панелей рядом и вам нужно выбрать более одной строки), используя tmux, мы можем скопировать в буфер tmux используя стандартную [, пробел, переместите для выбора, введите или вы можете выбрать блок кода. Также это особенно полезно, когда вы находитесь внутри одной из линий мультиплексора cli, например tmux, и вам нужно выбрать группу текста, но не номера строк (моя установка vim отображает номера строк)

После этого вы можете использовать команду:

tmux save-buffer - | xclip -i

Конечно, вы можете присвоить ему псевдоним или привязать его напрямую в файле конфигурации tmux

Это просто для того, чтобы дать вам концептуальный ответ, чтобы охватить этот крайний случай, когда невозможно выполнить команду снова. Если вам нужны более конкретные примеры кода, дайте мне знать

Приветствия

0 голосов
/ 15 января 2019

Я пришел из урезанного фона KDE и у меня нет доступа к xclip, xsel или другим необычным вещам.У меня есть TCSH Konsole, чтобы усугубить ситуацию.

Реквизиты: qdbus klipper xargs bash

Создать исполняемый файл bash foo.sh.

#!/bin/bash
qdbus org.kde.klipper /klipper setClipboardContents "$1" > /dev/null

Примечание: Это должно быть bash, поскольку TCSH не поддерживает многострочные аргументы.

За ним следует псевдоним TCSH в .cshrc.

alias clipboard xargs -0 /path/to/foo

Объяснение:

xargs -0 передает stdin в один аргумент.Этот аргумент передается исполняемому файлу bash, который отправляет запрос «copy to clipboard» на klipper, используя qdbus.Канал к /dev/null не должен выводить символ новой строки, возвращаемый qdbus на консоль.

Пример использования:

ls | clipboard

Копирует содержимое текущей папки вбуфер обмена.

Примечание: Работает только как труба.Используйте исполняемый файл bash напрямую , если вам нужно скопировать аргумент.

0 голосов
/ 30 июня 2018

Для тех, кто использует bash, установленный в их системе Windows (известной как Windows Subsystem for Linux (WSL)), попытка xclip выдаст ошибку:

Error: Can't open display: (null)

Вместо этого напомним, что подсистема Linux имеет доступ к Windows.исполняемые файлы.Можно использовать clip.exe как

echo hello | clip.exe

, что позволяет использовать команду вставки (ctrl-v).

...