Emacs 25从x windows PRIMARY剪贴板缓冲区用键盘猛拉

时间:2015-02-09 05:58:26

标签: emacs x11 xorg

在Linux环境中使用Emacs 25,我经常用鼠标复制文本,并希望我可以在Emacs中使用某些命令粘贴复制的文本,但目前我所知道的唯一方法是通过鼠标中键点击绑定to mouse-yank-primary。

我试图将此绑定到一个键命令,同时将鼠标设置为设置为true,但这(我怀疑)需要鼠标事件才能正常工作而且我是不知道如何让Emacs相信鼠标事件因击键而失效。

有人有什么想法吗?或者只是知道从PRIMARY选择中用键盘猛拉的正确方法?

4 个答案:

答案 0 :(得分:11)

感谢Christian的回答后,我找到了select.el并想出了以下信息,以便坚持我的.emacs

;; Pull from PRIMARY (same as middle mouse click)
(defun get-primary ()
  (interactive)
  (insert
   (gui-get-primary-selection)))
(global-set-key "\C-c\C-y" 'get-primary)

编辑:正如Stefan所指出的,gui-get-primary-selection(以及更一般地说,gui-get-selection)仅在Emacs 25及更高版本中可用。在Emacs 25.1中,x-get-selection已经过时了。

答案 1 :(得分:4)

我对emacs在S-insert上插入辅助X选择并发现此线程的默认行为感到恼火。我尝试使用Silfheed的代码,但emacs 24没有'gui-get-primary-selection'这样的功能。所以我浏览了'mouse-yank-primary'的来源,并想出了这个替代解决方案:

;; Pull from PRIMARY (same as middle mouse click)
(defun paste-primary-selection ()
  (interactive)
  (insert
   (x-get-selection 'PRIMARY)))
(global-set-key (kbd "S-<insert>") 'paste-primary-selection)

因此,s-insert将在光标位置插入主X选择 - 就像在xterm ...

中一样

答案 2 :(得分:1)

尝试设置:

(setq select-enable-clipboard t)

这样,正常的kill / yank命令(例如C-w和C-y)将与剪贴板一起使用。适用于X11和OSX(我相信,也适用于Windows)。

如果您查阅该变量的文档(例如通过C-h v),您应该这样一句话:

You can customize this variable.

其中“customize”是您可以单击的链接。这将带您进入Emacs的习惯系统,该系统提供了一种更简单,更有指导性的配置Emacs的方法。特别是,它将向您展示可能与调整相关的控件。即使您不希望以这种方式控制您的配置,您也可以将其用作设置重要变量的指南以及它们可以设置的内容。

答案 3 :(得分:1)

希望这会有所帮助。它是从上方无耻复制的,但是可以在24和25上使用。我还没有在其他版本中进行过测试。

(if (< emacs-major-version 25)This w
    ;; in emacs 24 or previous
    (defun paste-primary-selection ()
      (interactive)
      (insert (x-get-selection 'PRIMARY))
      )
  ;; in emacs 25 and above
  (defun paste-primary-selection ()
    (interactive)
    (insert (gui-get-primary-selection)))
  )
(global-set-key (kbd "S-<insert>") 'paste-primary-selection)