V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
emisora
V2EX  ›  问与答

TMUX 下如何才能愉悦的复制黏贴呢?

  •  
  •   emisora · 6 天前 · 1074 次点击

    老铁们,我找了教程。都比较复杂。让 c+b 然后进入缓冲区。 能不能有方法直接实现复制黏贴啊。

    场景一: 直接鼠标选中 ctrl c ctrl p 场景二: 能否终端像 vim 一样,直接 visual 然后 yy pp 也行啊。

    14 条回复    2025-02-27 10:09:52 +08:00
    Davic1
        1
    Davic1  
       6 天前
    可以!

    # tmux 的 copy-mode 中使用 vim 快捷键
    # 滚动鼠标滚轮或者 C-a + [ 进入 tmux copy-mode
    # C-c 退出 tmux copy-mode
    set-window-option -g mode-keys vi

    bind-key -T copy-mode-vi 'v' send -X begin-selection # 按 v 开始选中
    bind-key -T copy-mode-vi 'y' send -X copy-selection # y 键复制

    unbind -T copy-mode-vi MouseDragEnd1Pane # don't exit copy mode after dragging with mouse

    https://github.com/0ptimista/dotfiles/blob/master/.tmux.conf
    coldle
        2
    coldle  
       6 天前
    只要 tmux 能正常交互剪贴板,那你鼠标在终端拖拽时应该会自动进入 copy mode 将选中的字符复制,松开鼠标后退出。等内容进入你的剪贴板之后,直接 `shift+insert` 就可以粘贴
    ---
    以及终端像 vim 一样操作的配置就像 #1 说的那样,我的配置稍多一些,你可以按需选择

    # ======== copy mode ========

    # 基于 OSC 52 进行复制
    set -s set-clipboard on

    # copy mode 下使用 vim-like 快捷键
    set -g mode-keys vi

    # `v` 常规选择
    bind -T copy-mode-vi v send-keys -X begin-selection

    # `C-v` 块选择
    bind -T copy-mode-vi C-v send-keys -X rectangle-toggle \; send -X begin-selection

    # 前后向搜索, 保持 vim-like
    bind -T copy-mode-vi / command-prompt -p "search down" "send -X search-forward '%%%'"
    bind -T copy-mode-vi ? command-prompt -p "search up" "send -X search-backward '%%%'"

    # `y` 完成复制
    bind -T copy-mode-vi y send-keys -X copy-pipe
    coldle
        3
    coldle  
       6 天前
    如果鼠标拖动都无法自动复制的话,建议补充描述下自己的环境,包括终端、系统、是否 ssh 等
    aboutier
        4
    aboutier  
       6 天前
    浪费时间, 有时候快捷键真的不如 shift + 鼠标
    emisora
        5
    emisora  
    OP
       6 天前
    @coldle 我是 item 下装的 tmux 。 就是 iterm 启动后输入 tmux 进入 tmux 。
    然后其他一切操作正常。 鼠标也可以滚动,独立窗口也可以独立滚动。

    当时想自己选择复制的时候,右上角会出现黄色行数。但选中的字符串黄色会在松开鼠标的时候消失。
    我使用鼠标选中+直接 enter 进入缓冲区,然后我鼠标再点随意点击一下就会恢复到之前的界面,导致缓冲区无法进行选中。
    我鼠标进行选中的时候,反而选中全部偶尔零星带一两个边缘字符是其他颜色的能复制出来。

    我搞不懂是哪里出了问题或者哪里的配置有问题。

    本来想复制出来我的配置,但是我现在从 termial 根本复制不出来东西,真的很头疼。
    emisora
        6
    emisora  
    OP
       6 天前
    @Davic1 谢谢,黏贴进去了,要重启终端吗,我试了几次,但是还是无法从终端复制出来信息。
    coldle
        7
    coldle  
       5 天前
    @emisora

    松开右上角黄色消失是正常的,代表完成复制并退出复制模式(这是默认行为),但看你的表现应该是没成功写入系统剪贴板

    可能需要配置下 copy-command ,比如我在 win 平台的设置如下文所示。但我不太清楚 mac 下应该发到哪里 😂 你可以搜搜,总之大致方向是这样

    ---
    # 设置默认 copy-pipe 指令为传向 windows 系统剪贴板
    set -s copy-command 'tmux save-buffer - | clip'
    Davic1
        8
    Davic1  
       5 天前
    @emisora tmux source ~/.tmux.conf
    my3157
        9
    my3157  
       5 天前
    item2 推荐直接 tmux -CC
    my3157
        10
    my3157  
       5 天前
    然后配置下 item2 上 tmux 的几个选项, 然后就可以愉快的使用了, 几乎不用折腾快捷键和配置文件, 唯一用到的几个快捷键应该是 command + T 新建 tab, command + D , 当前 tab 竖向分屏, command + shift + D, 当前 tab 横向分屏, 其他正常鼠标或者触控板操作, 复制粘贴 ctrl c/v
    emisora
        11
    emisora  
    OP
       5 天前
    @coldle 谢谢 我去试试
    emisora
        12
    emisora  
    OP
       5 天前
    @Davic1 谢谢,我 source 了一下,可以复制黏贴了。我再详细研究下,感谢!
    emisora
        13
    emisora  
    OP
       5 天前
    @my3157 感谢,我尝试下。
    Davic1
        14
    Davic1  
       5 天前
    @emisora NO PROBLEMO !
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:19 · PVG 13:19 · LAX 21:19 · JFK 00:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.