Я использую последнюю версию tmux (из репозитория git) и xclip (0.12), и я хотел бы иметь возможность использовать привязки клавиатуры, подобные Emacs, для перемещения по тексту copy-mode
, M-w
выборки copy ( ) в буфер обмена и paste ( C-y
) из / в буфер копирования в буфер обмена.
До сих пор я мог вставлять текст C-y
и перемещаться copy-mode
с помощью Emacs-подобных привязок клавиатуры, но я все еще не могу скопировать текст из буфера tmux (например, в copy-mode
)
Я нашел этот поток для копирования всего буфера в буфер обмена (и наоборот), но, похоже, он не работает для меня.
Также в tmux-users
списке рассылки мне сказали, что в последних версиях tmux (только в git repo) предусмотрена команда под названием copy-pipe
. Страница man говорит следующее об этой команде:
Одна команда принимает аргумент copy-pipe, который копирует выделение и передает его в команду. Например, следующее свяжет 'C-q', чтобы скопировать выделение в / tmp, а также буфер вставки:
bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out"
Похоже, copy-pipe
он предназначен для частичного использования для передачи выбора другой команде. Также есть некоторые опечатки в этом описании и в команде (что это temacs-copy
?)
В любом случае, я хотел бы сделать следующее:
Копирование:
- Войдите в режим копирования
- Перейти к тексту , который я хочу , чтобы скопировать с помощью команд навигации Emacs (т.е.
C-f
,C-b
,M-f
,M-b
,C-a
, иC-e
т.д. , чтобы переместить курсор). Нет префикса для любого из них. - Скопируйте выделенный текст в буфер обмена с помощью:
M-w
( без префикса )
Приклеивание:
- Я хотел бы иметь возможность набирать
C-y
( без необходимости вводитьcopy-mode
), чтобы вставить текст в терминале ( без префикса )
Я попробовал следующее для копирования без удачи:
bind-key -n M-w run "tmux save-buffer - | xclip -i -selection clipboard"
Тем не менее, вставка прекрасно работает:
bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer"
Странно то, что я знаю, что xclip -i -selection clipboard
часть " " команды копирования выше работает хорошо, так как я могу копировать вещи в буфер обмена в командной строке, например:
echo "Hello world. How are you?" | xclip -i -selection clipboard
При всем этом, как я могу скопировать выделение из режима копирования в буфер обмена?