mac vscode终端中tmux文本无法选中,需启用"terminal.integrated.macoptionclickforcesselection": true配置并重启终端,再按option+鼠标左键即可选中。

VSCode终端里鼠标选不了文本,不是终端坏了,而是默认禁用了鼠标选择——尤其在 macOS + tmux 组合下几乎必现。
Mac 上按住 Option 也选不了?开这个配置就行
VSCode 默认把 Option(即 Alt)键用于终端快捷键(比如 Alt+↑/↓ 切换命令历史),所以鼠标拖动时不会触发文本选择。这不是 bug,是设计行为。
- 打开命令面板:
Cmd+Shift+P→ 输入Preferences: Open Settings (JSON)回车 - 在
settings.json中添加这一行:"terminal.integrated.macOptionClickForcesSelection": true - 保存后,必须关闭所有终端标签页(点右上角垃圾桶图标),再重新呼出终端才生效
- 之后按住
Option+ 鼠标左键拖动,就能正常框选了
Windows/Linux 用户选不中?先看是不是 Vim 插件在拦着
装了 Vim 插件且处于 Normal 模式时,终端焦点其实没交给 shell,而是被 Vim 插件接管了——此时鼠标点击、拖动全无效,连 Ctrl+C 都可能被吃掉。
- 终端里按
i进入插入模式,再试鼠标选中(临时解法) - 长期解决:进快捷键设置(
Ctrl+K Ctrl+S),搜terminal,把所有和终端相关的when条件里含vim.mode == 'Normal'的绑定删掉或禁用 - 或者更彻底:在
settings.json加上"vim.handleKeys": { "<c-v>": false, "<c-c>": false, "<c-x>": false }</c-x></c-c></c-v>,把终端控制权还给 VSCode
tmux 里还是选不了?别只开 mouse,还得配 VSCode
即使你在 tmux 配置里写了 set -g mouse on,VSCode 终端本身仍会拦截鼠标事件——它根本没把原始鼠标信号透传给 tmux。
- 确认已启用
"terminal.integrated.macOptionClickForcesSelection": true(Mac)或对应 Windows/Linux 的等效项(如"terminal.integrated.copyOnSelect": true) - tmux 中不要用
Prefix + Mouse操作,直接Option + 鼠标拖动(Mac)或Shift + 鼠标拖动(Win/Linux)选中后松手,VSCode 会自动复制 - 如果要粘贴进 tmux,别用右键菜单——用
Ctrl+Shift+V(Win/Linux)或Cmd+Shift+V(Mac),避免触发 tmux 的 paste buffer 冲突
真正容易被忽略的是:VSCode 终端的「鼠标选择」和「shell 输入」是两套独立通道,开了 mouse 不等于开了「选中文本」;而 copyOnSelect 开了也不代表你能拖出矩形块——得看当前是否处于可交互的 shell 状态,而不是卡在 Vim Normal 模式或某个阻塞命令里。











