Строка копии к буферу обмена и дисплею в окно вывода simultaeneously

Я работаю в Ubuntu 14.04 и использую Gedit.

Теперь я имею ниже кода (работающий из меню "External Tools" в Gedit) для получения, Gedit в настоящее время открывал путь документа к буферу обмена.

echo -n $GEDIT_CURRENT_DOCUMENT_URI | xclip -sel clip;

Теперь я также хочу отобразить результат echo -n $GEDIT_CURRENT_DOCUMENT_URI в окно вывода (с тем же оператором "эха"), наряду с копированием к буферу обмена.

Как я могу достигнуть этого?

1
задан 19 October 2015 в 19:00

2 ответа

Чтобы скопировать продукцию к клипборду, также производящему к текущему терминалу, Вы могли просто использовать tee, который произведет stdin к любому файлу, переданному к нему как аргумент и к stdout; Вы можете использовать замену процесса, бегущую xclip, чтобы «фальсифицировать» обычный файл и произвести к нему вместо к обычному файлу:

echo -n $GEDIT_CURRENT_DOCUMENT_URI | tee >(xclip -selection clipboard)

Другой выбор состоит в том, чтобы произвести к одному из свободных псевдотерминалов «по умолчанию» (tty1 к tty6), у которых есть correspodent файл устройства в «/dev» (»/dev/tty1» к «/dev/tty6»):

echo -n $GEDIT_CURRENT_DOCUMENT_URI | tee >(xclip -selection clipboard) >/dev/tty1

еще один выбор состоит в том, чтобы произвести к другому псевдотерминалу «слушания» использование названной трубы; это требует, чтобы установка установила терминал «слушания»:

Первый открытый терминал «слушания» и пробег этот сценарий (ради примера я предположу, что сценарий бежит в ~/tmp):

#!/bin/bash
mkfifo fifo # creates a named pipe named "fifo" in the current working directory
trap 'rm fifo; exit 0' 1 2 3 13 15 # traps SIGHUP, SIGINT, SIGQUIT, SIGPIPE and SIGTERM; removes "fifo" and exits upon the reception of each of them
while [ 1 ]; do
    cat fifo # outputs the content of "fifo"
done

Это создаст названную трубу, названную «первым прибыл, первым обслужен» в текущем рабочем справочнике, и будет непрерывно производить его содержание, пока выполнение сценария не будет остановлено;

Тогда использование Внешние Инструменты Джедита управляют этой измененной версией второй команды, которая вместо того, чтобы перенаправить продукцию к «/dev/tty1» перенаправляет его к названной трубе:

echo -n $GEDIT_CURRENT_DOCUMENT_URI | tee >(xclip -selection clipboard) >>~/tmp/fifo

Типовая продукция, используя два gnome-terminal случаи:

Управление сценарием на правильном терминале

screenshot1

, Бегущем echo -n $GEDIT_CURRENT_DOCUMENT_URI | tee >(xclip -selection clipboard) >>~/tmp/fifo на левом терминале

screenshot2

, Совершающем нападки CTRL + ИЗМЕНЕНИЕ + V

screenshot3

Больше информации о названных трубах

0
ответ дан 28 July 2019 в 11:04

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


Использование xclip

xclipпозволяет сохранять выходные данные в буфер обмена. Чтобы установить его, используйте:

sudo apt update && sudo apt install xclip

Затем используйте его следующим образом:

$ ls -l | tee >(xclip -selection clipboard)

total 9788
-rw-rw-r-- 1 rick rick 9950180 Dec 12 09:13 QueryResults.csv
-rw-rw-r-- 1 rick rick    6491 Oct 31 12:18 StackQuery
-rwxrwxr-x 1 rick rick   55970 Dec 12 18:47 stack-to-blog.py

Вывод после команды ls, появляющейся на вашем экране, также будет в буфере обмена, готовом к вставке в большинство приложений с помощью Ctrl+ Vили Меню Right-Click, а затем опции Вставить.

Создание псевдонима для команды xclip

Если вы планируете использовать его более одного раза, необходимо создать псевдоним . Отредактируйте файл ~/.bashrcи введите следующую строку:

alias clip="tee >(xclip -selection clipboard)"

Затем вместо ввода:

ls -l | tee >(xclip -selection clipboard)

Все, что вам нужно ввести, это:

ls -l | clip

ПРИМЕЧАНИЕ:После сохранения файла ~/.bashrcон не готов к использованию до следующего перезапуска терминала или до тех пор, пока вы не освободите его с помощью команды . ~/.bashrc

0
ответ дан 13 December 2021 в 02:32

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

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