2013-09-30 252 views
5

我用我.tmux.conf以下配置到回回从XCLIP键盘快捷键使用XCLIP

bind C-c run "tmux save-buffer - | xclip -i -sel clipboard" 
bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer" 

复制文本,如果我在如C-前缀抄送后停用时,文本被粘贴到另一个应用程序中,但之后没有任何tmux命令在tmux终端中工作(例如,C前缀[进入复制模式等)

我的配置有什么问题?

+0

如果将第二个绑定更改为以下内容,它会工作吗? 'bind C-v run“

+0

@ChrisJohnsen:它不工作:( – RAbraham

回答

13

根据https://wiki.archlinux.org/index.php/Tmux#X_clipboard_integration

看来XCLIP不关闭STDOUT它已经从TMUX的缓冲区读取后。因此,tmux不知道复制任务已完成,并继续/等待xclip的终止,从而导致窗口管理器无响应。要解决此问题,可以通过run-shell -b而不是run来执行命令,可以将xclip的STDOUT重定向到/ dev/null,也可以使用替代命令,如xsel。

更新PREFIX C-c结合下列固定对我来说:

bind C-c run "tmux save-buffer - | xclip -i -sel clipboard > /dev/null" 
0

对我来说,切换到xsel而不是xclip的伎俩。