Как синхронизировать буфер обмена терминальных приложений на сервере без X?

find традиционно/обычно сочетается сxargs:

find …something… -print0 | xargs -0 …dosomething…

Конкретно для вашего q -n трубопровод должен быть сделан наxargs -0 ls -dlt

☝️Примечание. :BSD' 1 версия xargsне будет работать, если не было конвейера ввода; но с GNU вам лучше использовать -r(man xargs, чтобы показать)

__

1 — Как указано в комментариях, OpenBSD является исключением (, как это часто бывает с OpenBSD );)

0
07.04.2020, 21:00
1 ответ

Нет общего буфера обмена для терминальных приложений. У каждого из tmux, zsh и vim есть собственный буфер обмена.

tmux имеет механизм для отправки скопированного текста на внешний терминал с escape-последовательностью (опция set-clipboard), а также для чтения буфера обмена(refresh-client -l). Эту функцию поддерживают только X-терминалы, а не все.

tmux также поддерживает ту же управляющую последовательность (OSC 52 ), позволяя приложениям внутри tmux считывать самый последний буфер вставки (, если для set-clipboardустановлено значениеon). Однако, насколько мне известно, немногие приложения используют это.

tmux также позволяет сохранять буферы вставки в файл или в стандартный вывод с помощью команды save-bufferи загружать их с помощью команды load-buffer. Это, вероятно, проще в использовании, чем OSC 52.

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

Так что да, вы можете собрать что-то вместе, запустив все внутри tmux, используя tmux для хранения буфера обмена и написав несколько скриптов для получения и установки его из vim, zsh и т. д., но я думаю, что вам нужно будет сделать это самостоятельно., существующего решения нет.

1
28.04.2021, 23:18

Теги

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