我正在学习使用tmux,我发现当我在tmux窗口中时,双击选择并复制功能不再起作用。
我可以使用双击选择和复制,就像在iterm2中一样吗?
我用谷歌搜索了一段时间,但没有找到一个简短而明确的答案。我已经在tmux配置文件中添加了setw -g mode-mouse on
。
答案 0 :(得分:18)
不知道iterm2,但这可以在tmux 2.6中实现(在Linux上测试,最后一个命令使用X11 xclip)。
添加了三击以选择并复制一行。
# Double LMB Select & Copy (Word)
bind-key -T copy-mode-vi DoubleClick1Pane \
select-pane \; \
send-keys -X select-word \; \
send-keys -X copy-pipe "xclip -in -sel primary"
bind-key -n DoubleClick1Pane \
select-pane \; \
copy-mode -M \; \
send-keys -X select-word \; \
send-keys -X copy-pipe "xclip -in -sel primary"
# Triple LMB Select & Copy (Line)
bind-key -T copy-mode-vi TripleClick1Pane \
select-pane \; \
send-keys -X select-line \; \
send-keys -X copy-pipe "xclip -in -sel primary"
bind-key -n TripleClick1Pane \
select-pane \; \
copy-mode -M \; \
send-keys -X select-line \; \
send-keys -X copy-pipe "xclip -in -sel primary"
如果您不使用copy-mode-vi
,请将其替换为copy-mode
。
答案 1 :(得分:2)
我想出了一种复制粘贴机制,该机制与从终端获得的期望类似
我使用以下设置能够:
此解决方案将使选择保持突出显示并将选择输出复制到剪贴板缓冲区(主缓冲区和剪贴板)
当您按下“ Enter”键时,您退出并返回外壳程序
这里的优点是,您可以将鼠标中键同时用作tmux之外的shift-insert组合来粘贴内容,而仍保持选中状态。
另外,当您退出外壳时,可以使用鼠标中键或按shift-insert粘贴内容
正常终端环境中的所有期望结果
# Enable mouse control
setw -g mouse on
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter \
send -X cancel
# Drag and Drop Aelect & Copy (Selection)
bind-key -T copy-mode-vi MouseDragEnd1Pane \
send-keys -X copy-pipe "xclip -in -f | xclip -in -sel c" \; \
send-keys -X no-clear
# Double LMB Select & Copy (Word)
bind-key -T copy-mode-vi DoubleClick1Pane \
select-pane \; \
send-keys -X select-word \; \
send-keys -X copy-pipe "xclip -in -f | xclip -in -sel c" \; \
send-keys -X no-clear
bind-key -n DoubleClick1Pane \
select-pane \; \
copy-mode -M \; \
send-keys -X select-word \; \
send-keys -X copy-pipe "xclip -in -f | xclip -in -sel c" \; \
send-keys -X no-clear
# Triple LMB Select & Copy (Line)
bind-key -T copy-mode-vi TripleClick1Pane \
select-pane \; \
send-keys -X select-line \; \
send-keys -X copy-pipe "xclip -in -f | xclip -in -sel c" \; \
send-keys -X no-clear
bind-key -n TripleClick1Pane \
select-pane \; \
copy-mode -M \; \
send-keys -X select-line \; \
send-keys -X copy-pipe "xclip -in -f | xclip -in -sel c" \; \
send-keys -X no-clear
# Middle click to paste from the primary buffer
unbind-key MouseDown2Pane
bind-key -n MouseDown2Pane run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
# Shift insert to paste from the clipboard
unbind-key S-IC
bind-key S-IC run "tmux set-buffer \"$(xclip -o -sel c)\"; tmux paste-buffer"
答案 2 :(得分:0)
在Alacrity
中,按住Shift
可以像没有tmux一样进行复制。
答案 3 :(得分:0)
以@ ideasman42的答案为基础。这是使用tmux 2.8和pbcopy来制作macos莫哈韦沙漠
# Double LMB Select & Copy (Word)
bind-key -n DoubleClick1Pane \
select-pane \; \
copy-mode -M \; \
send-keys -X select-word \; \
run-shell "sleep .5s" \; \
send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -n DoubleClick1Pane \
select-pane \; \
copy-mode -M \; \
send-keys -X select-word \; \
run-shell "sleep .5s" \;
send-keys -X copy-pipe-and-cancel "pbcopy
我的版本简短地选择了单词,将其复制到系统缓冲区,然后取消复制模式。
答案 4 :(得分:0)
在 Kitty / Alacritty 中,我们在按住Shift
的同时双击文本块。并且复制在本机以及在tmux中都可以正常工作。