Windows 实现 Linux 风格"选中即复制,中键即粘贴"操作指南
本指南总结了通过 AutoHotkey (AHK) 在 Windows 环境下完美模拟 Linux (X11) 鼠标行为的方案。此方案已解决权限隔离、浏览器兼容性及误触发等常见问题。
1. 环境准备与权限配置
为了确保脚本能穿透浏览器(Chrome/Edge)及高权限软件(编辑器、终端),必须配置 UI Access。
- 安装 AHK :前往 AutoHotkey 官网 下载并安装 v2.0+ 版本。
- 配置权限 :
- 打开 AutoHotkey Dash(系统搜索即可找到)。
- 点击 Launch settings。
- 确保右侧的 UI Access 选项已全部勾选。
- 保持 "Auto-detect version when launching script" 选中状态。
2. 创建"强力版"脚本
传统的"光标检测"法在很多现代软件中会失效。我们改用物理位移检测法:只要鼠标左键按下并移动超过一定距离,松开时即触发复制。
- 在文件夹中右键 -> 新建 -> AutoHotkey Script ,命名为
LinuxMouse.ahk。 - 右键点击该文件,选择 Edit Script,粘贴以下经过优化的代码:
autohotkey
; =================================================================
; Windows Linux-Style Mouse Behavior (AHK v2)
; 功能:左键划选文字自动复制,鼠标中键直接粘贴
; =================================================================
; --- 划选即复制 (基于位移判断,兼容性最强) ---
~LButton::
{
; 记录按下左键时的初始坐标
MouseGetPos(&x1, &y1)
; 等待左键松开
KeyWait("LButton")
; 记录松开时的坐标
MouseGetPos(&x2, &y2)
; 计算移动的欧几里得距离
distance := Sqrt((x1-x2)**2 + (y1-y2)**2)
; 只有当移动距离大于 5 像素时,才判断为"划选"动作并触发复制
; 这样可以避免单纯的"单击"导致剪贴板被误覆盖
if (distance > 5)
{
Sleep(50) ; 给系统 UI 留出选区渲染的时间
Send("^c")
}
}
; --- 中键即粘贴 ---
~MButton::
{
; 直接模拟 Ctrl+V
Send("^v")
}
; 提示:如果需要在某些软件中禁用此功能,可以使用 #HotIf 指令
3. 运行与部署
启动脚本
- 推荐方式 :右键点击脚本文件,选择 "Run with UI Access"。
- 如果菜单中没有该项,请选择 "以管理员身份运行"。
开机自启
如果你希望每次进入系统自动拥有此功能:
- 按下
Win + R,输入shell:startup。 - 将
LinuxMouse.ahk文件的快捷方式放入该文件夹。
4. 常见问题排除 (Troubleshooting)
| 现象 | 原因 | 对策 |
|---|---|---|
| 记事本有效,浏览器无效 | 权限不足或光标反馈异常 | 确保以 UI Access 或管理员权限运行;使用上述"位移判断"版代码。 |
| 单击按钮时也触发复制 | 位移阈值太小 | 将代码中的 distance > 5 改为 10 或更高。 |
| 中键无法关闭浏览器标签 | 按键映射冲突 | 在代码中为 ~MButton 增加条件判断(如 if !WinActive("ahk_exe chrome.exe"))。 |
💡 贴士 :对于像您这样经常处理 ROS 2 仿真或学术论文(LaTeX)的用户,建议在 Windows Terminal 的设置中额外开启
"copyOnSelect": true,以获得终端环境下的原生双重保障。
Windows Terminal 完美实现 Linux 风格"中键粘贴"配置指南
本指南旨在通过修改 Windows Terminal 的原生配置,实现在 WSL 或 CMD 环境下"选中即复制"以及"鼠标中键粘贴"的功能,无需依赖第三方脚本,稳定性更高。
1. 开启"选中即复制" (Copy on Select)
开启此功能后,只要你在终端内划选任何文字,它会自动进入 Windows 剪贴板。
- 打开 Windows Terminal。
- 点击顶部标签栏的下拉箭头,选择 设置 (Settings)。
- 在左侧导航栏点击 交互 (Interaction)。
- 找到 "选中即复制" (Copy on selection) ,将其开关设为 开启。
- 点击右下角 保存 (Save)。
2. 配置"鼠标中键粘贴" (Middle Click Paste)
由于 Windows Terminal 的图形设置界面有时无法直接捕获鼠标中键点击,建议通过 JSON 配置文件进行精准映射。
操作步骤:
- 在 Windows Terminal 中按下
Ctrl + Shift + ,(逗号) 打开settings.json。 - 在文件中找到
"keybindings"或"actions"数组(通常在文件末尾附近)。 - 务必关闭已打开的图形设置标签页,防止保存冲突。
- 将以下配置代码添加到数组中:
json
{
"keybindings": [
{
"command": "paste",
"keys": "mbutton"
},
// ... 其他现有的快捷键配置
]
}
注意事项:
- 语法检查 :确保每个
{}之间有逗号分隔,且数组最后一项后面不要有逗号。 - 保存生效:保存 JSON 文件后,无需重启终端即可立即生效。
3. 进阶:管理员权限与启动建议
对于 ROS 2 开发者或 Autoware 研究者,有时需要处理底层驱动或网络配置。
- 不建议默认管理员启动:为了系统安全及 Python/LaTeX 路径的一致性,建议平时以普通权限运行。
- 按需提权 :
- 如果某个标签页需要管理员权限,可以在 设置 -> 默认值 -> 高级 中勾选 "以管理员身份运行此配置文件"。
- 或者在启动终端时,右键点击图标选择"以管理员身份运行"。
4. 环境排查提示
如果配置后中键粘贴依然无效,请检查:
- 驱动干扰:检查罗技 G Hub 或雷蛇 Synapse 等鼠标驱动软件是否将中键全局映射为了其他宏。
- 脚本冲突 :确保之前运行的 AutoHotkey 脚本没有抢占
~MButton信号。 - 应用类型 :确认你打开的是 Windows Terminal 而非旧版的
cmd.exe(旧版控制台不支持此 JSON 配置)。