最可靠方式是彻底屏蔽x11主选择区读取能力,而非仅关闭enable_middle_click_paste;需通过xclip定时清空primary selection或用xmodmap重映射中键,wayland下无通用方案。

禁用鼠标中键粘贴,最可靠的方式是彻底屏蔽 X11 主选择区读取能力——不是关 Sublime 的某个开关,而是让它“读不到”内容。
为什么直接改 enable_middle_click_paste 不起作用
这个设置只控制 Sublime 是否“尝试去读”主选择区(primary selection),但不阻止它实际执行粘贴动作。即使设为 false,只要系统级中键行为未变,部分桌面环境(尤其 GNOME/KDE)仍会把中键当作粘贴触发器,Sublime 收到事件后可能 fallback 到默认插入光标或静默失败——看起来像“没反应”,实则风险仍在。
真正要防误触,得从源头切断:让中键按下时,压根没有可粘贴的内容,或让系统根本不把它当粘贴信号。
推荐方案:用 xclip 清空主选择区(轻量、可逆、不影响剪贴板)
这是开发场景下最实用的折中方案:保留 Ctrl+V 粘贴(clipboard),仅让中键“按了等于没按”。
- 创建一个空文件:
touch ~/.empty-for-middle-click - 写个守护脚本(如
~/bin/clear-primary.sh):
#!/bin/sh while true; do xclip -i -selection primary ~/.empty-for-middle-click >/dev/null 2>&1 sleep 0.8 done
- 赋予执行权限:
chmod +x ~/bin/clear-primary.sh - 开机自启(以 systemd user service 为例):
~/.config/systemd/user/clear-primary.service内容如下:
[Unit] Description=Clear X11 primary selection every second [Service] Type=simple ExecStart=%h/bin/clear-primary.sh Restart=always RestartSec=3 [Install] WantedBy=default.target
- 启用:
systemctl --user daemon-reload && systemctl --user enable --now clear-primary.service
验证:选中文本后按中键,Sublime 插入的是空行或无内容;Ctrl+C/Ctrl+V 一切照常。
彻底禁用中键(适合高频误触者)
如果你连中键滚动、侧边栏打开文件等行为都想停掉,用 xmodmap 直接重映射更干脆:
- 临时禁用(当前会话生效):
xmodmap -e "pointer = 1 25 3 4 5 6 7 2" - 恢复命令:
xmodmap -e "pointer = 1 2 3 4 5 6 7 8" - 持久化:把禁用命令加进
~/.profile或桌面环境的 autostart(如 KDE 的 Autostart 文件夹)
注意:25 是一个非法按钮码,X Server 会忽略该事件;2 是右键,3 是中键,所以第二位改成 25 就等于“废掉中键”。此法对所有应用生效,包括终端、浏览器,慎用于依赖中键滚动的场景。
复杂点在于:Wayland 下 xmodmap 和 xclip 都不工作,目前无通用替代方案;若你已在 Wayland 会话中,唯一稳妥办法是换用插件如 PrimaryPaste 并禁用其快捷键,或接受中键粘贴为系统级不可绕过行为——这恰恰说明,禁用中键粘贴从来不是 Sublime 的配置问题,而是 Linux 显示服务器层的权衡取舍。











