在Git for windows(MSYS2)中实现tmux和windows剪切板的共享功能

本文介绍了如何在Git for Windows的MSYS2环境中配置tmux,使其能够与Windows系统剪切板共享内容。通过利用Msys2的/dev/clipboard接口和clip.exe程序,实现了在tmux内复制内容到系统剪切板,以及从剪切板粘贴到终端的功能。关键配置包括使用run和send-keys命令,以及注意分隔符和空格的使用。最终提供了一种在MSYS2 tmux环境中顺畅使用的解决方案。
摘要由CSDN通过智能技术生成

一直以来个人开发环境中linux下tmux和系统剪切板的共享功能都是通过xclip机制实现的,废话不多说直接贴在用的tmux配置文件吧:

# 显示vi-cope模式下的映射 tmux list-keys -t vi-copy
# 由于vim中C-b是上翻键的原始映射,为避免对vim产生影响,这里将tmux的快捷键前导修改为C-y
# unbind-key C-b
# set -g prefix C-y

# 设置开启光标事件功能, 配合vim-tmux-focus-events插件可以实现自动触发vim的FocusGained自动命令
# 注意:该配置会导致vim内部启动的terminal在切换tmux的Tab窗口时收到<Esc>[O, 需要在vim添加映射来处理这种情况
set -g focus-events on
set -g escape-time 0 # escape-time=0提高了esc键在vim中的反应速度,非常重要的配置
set -g mode-keys vi # tmux的复制模式使用vi模式以实现复制模式下操作和vim类似
set -g status-keys emacs # 状态栏使用emacs风格的按键映射
set -g status-interval 30 # 状态栏每30秒刷新一次
set -g display-time 1000 # 设置状态提示信息显示时间为1s
set -g wrap-search off # 关闭历史搜索时的自动循环搜索
set -g base-index 1 # index从1开始
set -g pane-base-index 1 # pane的索引从1开始
set -g renumber-windows on # 可以自动调节窗口index
set -g automatic-rename on # 远程终端的标题加入当前运行的程序名,vimdesktop需要用这个标题来切换快捷映射
set -g set-titles on # 设置窗口标题格式, 该格式需要被vimd使用
set -g set-titles-string '#W-#S' # 窗口格式设置为"程序名后总是追加'-tmux'
set -g allow-rename off # 是否允许使用printf \033kxxx\033\\ 名来来重命名当前窗口标题(#W)
set -g history-limit 81920 # 设置历史缓冲大小, 大一点会方便历史搜索
set -g default-terminal "xterm-256color" # 设置终端颜色为256色
set -ga terminal-overrides ",*256col*:Tc" # 设置tmux支持24bit的真彩色
set -g aggressive-resize on # 允许重设置窗口大小
set -g mouse on # 使能tmux的鼠标模式, 配合下面的自定义的按键配置基本可以实现复制模式无障碍自动切换

# 优化鼠标操作, 主要是为了支持自动复制到全局剪切板, 注意:\;前后的空格都不能省略, 否则会导致配置无效
# 复制模式下实现类似vim的'v'进入选择模式
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi B send-keys -X rectang
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值