Я пытаюсь найти способ скопировать текущий текст из командной строки в буфер обмена, не касаясь мыши. Другими словами, мне нужно выбрать текст только с клавиатуры. Я нашел промежуточное решение, которое может привести к полному решению:
Ctrl+a - перейти к началу строки.
Ctrl+k - режет всю линию.
Ctrl+y - дергает вырезанный текст обратно.
В качестве альтернативы я также могу использовать Ctrl+uдля выполнения первых 2 шагов.
Это, конечно, работает, но я пытаюсь выяснить, где именно сохранен вырезанный текст. Есть ли способ получить к нему доступ без использования Ctrl+y? Я знаю xclip
и даже использую его для передачи текста прямо в буфер обмена, поэтому я думал о передаче данных, сохраненных Ctrl+kв xclip
, но не уверен, как это сделать.
Метод, который я получил до сих пор, - это написание скрипта, который используется xdotool
для добавления echo
в начало строки и | zxc
до конца строки, а затем нажимает клавишу enter ( zxc
являясь пользовательским псевдонимом, который в основном передается по конвейеру xclip
). Это также работает, но это не очень «чистое» решение.
Я использую Cshell, если это что-то меняет.
РЕДАКТИРОВАТЬ: я не хочу использовать screen
в качестве решения, забыл упомянуть об этом.
Спасибо!
Ответы:
При использовании
xterm
или производной вы можете настроить привязки клавиш для начала и окончания выделения текста и сохранить его в качестве основного выделения X11 или буфера вырезания. Смman xterm
. Например, добавьте в свой~/.Xdefaults
:Вы можете иметь только одну
XTerm*VT100.Translations
запись. Обновите сервер X11 новым содержимым файла с помощьюxrdb -merge ~/.Xdefaults
. Начать новыйxterm
.Теперь, когда у вас есть некоторый ввод в командной строке, ввод 1с цифровой клавиатуры начнет выделять текст в текущей позиции текстового курсора, так же, как при нажатии кнопки 1 на мышке. Переместите курсор с помощью клавиш со стрелками, затем нажмите 2цифровую клавиатуру, и промежуточный текст будет выделен и скопирован в основной выбор и обрезной буфер0. Очевидно, что можно выбрать другие более подходящие ключи и действия. Вы можете аналогичным образом вставить выделение с привязками, как
insert-selection(PRIMARY)
.источник
translations
Ресурс является функция X Toolkit упоминается здесь и там , который не имеет аналогов в других инструментариев. Однако вы можете переключаться между наборами переводов, используя этуkeymap
функцию (отмечая комментарий «У вас может быть только один»).