首页 文章

如何在MS Windows上组合Emacs主要/剪贴板复制和粘贴行为?

提问于
浏览
12

Emacs 24改变了复制/粘贴行为的工作方式,以符合现代X应用程序(参见"Selection changes"下的this article) . 他们明确地将主要选择和鼠标中键粘贴从剪贴板复制/粘贴中分离出来 .

不幸的是,在MS Windows下使用原生(不是cygwin!)Emacs 24.2.1,这会弄乱我想要的工作方式 .

这就是我想要的:

  • 在Emacs中突出显示(选择)文本会自动将其复制到Windows剪贴板 . 如果我将其粘贴(Ctrl-V)在另一个Windows应用程序中粘贴它 . 如果我在Emacs中键入C-y(yank),它会粘贴 . 如果我在Emacs中单击鼠标中键,它会粘贴 .

  • 杀死Emacs(C-w)将数据复制到剪贴板 . 如果我将其粘贴(Ctrl-V)在另一个Windows应用程序中粘贴它 . 如果我在Emacs中键入C-y(yank),它会粘贴 . 如果我在Emacs中单击鼠标中键,它会粘贴 the clipboard contents, not the last selected text .

  • 我从另一个Windows应用程序(例如通过Ctrl-C)复制到剪贴板的任何内容都可以通过键入C-y(yank) or middle-clicking (现在,中间点击粘贴最后选择的文本,而不是剪贴板内容)粘贴到Emacs中 .

总而言之,我认为这意味着在Emacs中删除主要选择和剪贴板之间的区别 . 我希望一切都在剪贴板上行动!

3 回答

  • 0

    来自NEWS的以下条目似乎相关:

    • mouse-drag-copy-region 现在默认为零 .

    • mouse-2现在绑定到 mouse-yank-primary .

    这是从主要选择粘贴,忽略杀死环 . 以前,mouse-2绑定到 mouse-yank-at-click .

    • 要返回先前的行为,请执行以下操作:

    • select-active-regions 更改为nil .

    • mouse-drag-copy-region 更改为t .

    • x-select-enable-primary 更改为t(仅限X) .

    • x-select-enable-clipboard 更改为零 .

    • mouse-yank-at-click 绑定到mouse-2 .

    我认为要在Windows上获得以前的行为,您需要将 x-select-enable-primaryx-select-enable-clipboard 保留为其当前值,并且可能 select-active-regions 与您在此处抱怨的行为更改无关 .


    以下是放在.emacs文件中的确切行:

    (setq select-active-regions nil)
    (setq mouse-drag-copy-region t)
    (global-set-key [mouse-2] 'mouse-yank-at-click)
    
  • 1

    似乎拖动鼠标对剪贴板没有任何作用 . 以下添加,但我不知道它指向和标记的作用:

    (defadvice mouse-drag-region (after copy-to-clipboard activate)
      (clipboard-kill-ring-save (region-beginning) (region-end))
      (goto-char st) (push-mark nd nil t)
      )
    
  • 17
    • 据我所知,第2点和第3点已经有效"out-of-the-box"?

    • 另外,我认为你对历史(如杀戮戒指)不感兴趣吗?

    • 你的意思是突出显示"selecting it"(在称为区域的emacs中),或实际突出显示它(给它一个颜色,比如说,黄色)?

    如果你的意思是选择它,我认为问题是Emacs不知道你的选择何时结束,因此必须将它复制到剪贴板?这就是为什么你会使用 Meta-W (Alt-Shift-w)将它复制到 kill-ring ,可以在Emacs之外访问 .

    (我在这里发布了这个,因为我觉得这些评论很混乱,但我稍后会删除或更改此答案)

    我想你会在 mouse.el 找到你需要的所有信息:

    要到达那里,请尝试:C-hkany鼠标按钮并单击mouse.el以找出它的定义位置 . 如果您在文件中查找更多“ global-set-key ”,您可能会找到您正在寻找的内容(我仍然不是100%肯定)

相关问题