xclip не изменяет содержание буфера обмена

Если Вы просто хотите последний аргумент от предыдущей команды, затем используют !$. Если Вы хотите все аргументы от последней команды, затем используют !*.

Пример

КОМАНДА № 1:

$ echo 1 2 3 4
1 2 3 4

выполненный № 1 затем это:

$ echo !$
echo 4
4

выполненный № 1 затем это:

$ echo !*
echo 1 2 3 4
1 2 3 4

Также я настоятельно рекомендую, чтобы Вы проверили эту Unix & Linux Q&A и вопросы и ответы @Gilles' SuperUser:

Синтаксис двоеточия

Можно думать history вывод как сетка. Каждая команда является строкой, каждым аргументом каждой команды является столбец. Как это: (!строка:столбец).

Таким образом, можно сослаться на предыдущие части команд как это:

$ history | grep "105[8-9]"
 1058  echo 1 2 3 4
 1059  echo 5 6 7 8

$ echo !1058:2
echo 2
2
$ echo !1059:3
echo 7
7

4
19.04.2014, 01:07
1 ответ

X действительно не имеет "буфера обмена" по умолчанию. Выборки управляются приложением, которое «владеет» ими, и если вы хотите скопировать или вставить выбор, это делается посредством обмена данными между обоими приложениями, что означает, что другое приложение, которое удерживает выбор, по-прежнему должно быть Бег.

Однако есть способ принять выбор, поэтому существуют общие приложения с буфером обмена, такие как xclipboard , которые позволяют другим приложениям «отправлять» выбор XA_CLIPBOARD .

Итак, (1) либо запустите xclip с параметром -l , чтобы он продолжал работать до тех пор, пока второе приложение не вставит успешно (для этого может потребоваться несколько циклов связи, поэтому - l 1 может дать сбой) или (2) запустить диспетчер буфера обмена и использовать -выбор XA_CLIPBOARD .

Вы также сказали, что «содержимое буфера обмена не меняется», но не совсем понятно, какой «буфер обмена» вы имеете в виду и как это проверяли.

3
27.01.2020, 20:58

Теги

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