我正在运行最新版本的tmux(来自git存储库)和xclip(0.12),并且我希望能够使用类似Emacs的键盘绑定在中的文本周围移动copy-mode
,将(M-w
)选择复制到剪贴板,以及粘贴(C-y
从/)复制到复制缓冲区到剪贴板。
到目前为止,我已经能够使用粘贴文本C-y
,并copy-mode
使用类似Emacs的键盘绑定来移动文本,但是我仍然无法从tmux缓冲区复制文本(例如copy-mode
)
我发现此线程可将整个缓冲区复制到剪贴板(反之亦然),但似乎不适用于我。
另外,在tmux-users
邮件列表中,我被告知,最新版本的tmux(仅在git repo中)提供了一个名为的命令copy-pipe
。手册页说明了有关此命令的以下内容:
中的一个命令接受一个参数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
有了这些,如何将选择内容从复制模式复制到剪贴板?