Mac下如何用鼠标中键粘贴Emacs或其他应用复制的文本?
解决macOS下Emacs 30.1鼠标中键粘贴外部内容及剪贴顺序问题
针对你遇到的Emacs无法用鼠标中键粘贴外部复制内容,且之前配置导致剪贴顺序混乱的问题,可以通过以下配置解决:
核心配置方案
将以下代码添加到你的~/.emacs或init.el文件中:
;; 同步Emacs与系统剪贴板 (setq x-select-enable-clipboard t) (setq x-select-enable-primary t) ;; 执行kill操作前保留系统剪贴板内容,避免覆盖导致的顺序混乱 (setq save-interprogram-paste-before-kill t) ;; 配置鼠标中键在点击位置粘贴内容 (global-set-key [mouse-2] (lambda (event) (interactive "e") (mouse-set-point event) (yank)))
配置说明
x-select-enable-clipboard:让Emacs的yank/kill操作与系统剪贴板联动,实现和其他应用Cmd+C/Cmd+V的同步。x-select-enable-primary:使Emacs中鼠标选中的内容自动同步到系统primary选区,支持鼠标中键直接粘贴选中内容。save-interprogram-paste-before-kill:这是解决你之前遇到的「剪切内容前置」问题的关键——当执行剪切(kill)操作时,会先将当前系统剪贴板的内容保存到Emacs的kill ring,避免后续粘贴时出现顺序错乱。- 自定义
mouse-2绑定:先定位鼠标点击的位置,再执行yank,既保证了在指定位置粘贴,又使用了同步后的系统剪贴板内容,不会再出现旧内容干扰的问题。
验证步骤
重启Emacs后测试以下场景:
- 其他应用用
Cmd+C复制内容,回到Emacs点击鼠标中键,可正常粘贴。 - Emacs内鼠标选中内容,自动同步到系统剪贴板,其他应用用
Cmd+V可粘贴,Emacs内部鼠标中键也能粘贴选中内容。 - 先剪切一段文本,再复制另一段内容,粘贴时只会显示最后复制的内容,无前置剪切内容的问题。
内容的提问来源于stack exchange,提问作者Timur Shtatland
相关产品推荐
相关产品推荐

