为了将文本复制到tmux中的X剪贴板,我目前要做的是:
- 进入选择模式 prefix[
- 开始选择space(使用
mode-keys vi
btw) - 选择文本并按 enter
- 使用以下命令将tmux缓冲区复制到X剪贴板 prefixctrl+c
(我有一个映射为 bind C-c run "tmux show-buffer | xclip -selection clipboard -i"
我试图通过为选择模式进行映射来消除其中的一些步骤。我试过了:
bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
这给了我和错误:
.. usage: bind-key [-cnr] [-t key-table] key command [arguments]
(我无法复制该错误)
我怎样才能解决这个问题?
编辑:我已经意识到我可以像常规选择一样使用鼠标选择并复制到tmux缓冲区(前3个步骤)(尽管突出显示不会持续,它仍然会选择文本),然后使用以下绑定复制到x剪贴板:
bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"
(我使用这种方法来复制此文本,这很容易;)
注意,-n
表示“无前缀”,因此不需要转义。如果您不对消失的高亮感到困惑,这类似于常规(通用用户界面)复制。
这是我到目前为止提出的最好的..
EDIT2:原来是ctrl+c与进程中断的东西重叠的,所以我ctrl+alt+c现在改为。(不太喜欢)
EDIT3: tmux 1.8左右添加了对在复制模式下添加键绑定的支持,因此现在我的第一个初衷是可以使用类似以下命令的:
bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"
这两个绑定使我使用时可以将文本复制到剪贴板enter或y完成复制。
我仍然保留这一行,以防我用鼠标进行复制并决定稍后将tmux缓冲区内容保存到剪贴板:
bind-key y run "tmux show-buffer | xclip -selection clipboard -i"
^c
作为中断键,因为我会比复制更多地使用它。我还更新了答案以反映我当前对这个问题的解决方案。
bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
现场给出:Unknown command: run
bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"
正常。
stty intr=^Z
。请谨慎使用该命令,可以将常规字符设置为中断字符(如果这样做,请使用ctrl-v输入该字符,直到修复设置为止)。并且不要对使用的键感到困惑(例如ctrl-z通常是挂起键)。