You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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后测试以下场景:

  1. 其他应用用Cmd+C复制内容,回到Emacs点击鼠标中键,可正常粘贴。
  2. Emacs内鼠标选中内容,自动同步到系统剪贴板,其他应用用Cmd+V可粘贴,Emacs内部鼠标中键也能粘贴选中内容。
  3. 先剪切一段文本,再复制另一段内容,粘贴时只会显示最后复制的内容,无前置剪切内容的问题。

内容的提问来源于stack exchange,提问作者Timur Shtatland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:51:05