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

Sil*_*eed 6 x11 emacs xorg

在Linux环境中使用Emacs 25,我经常使用鼠标复制文本,并希望我可以在Emacs中使用某些命令粘贴复制的文本,但目前我所知道的唯一方法是通过鼠标中键单击鼠标 - 猛拉原色.

我试图将它绑定到一个键命令,同时将mouse-yank-at-point设置为true,但这(我怀疑)需要鼠标事件才能正常工作,我不知道如何让Emacs进入相信由于击键导致鼠标事件发生.

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

Sil*_*eed 11

看完克里斯蒂安的回答后,我找到了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)
Run Code Online (Sandbox Code Playgroud)

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


小智 5

我只是对在 S-insert 上插入辅助 X-selection 的 emacs 默认行为感到恼火,并找到了这个线程。我尝试使用 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)
Run Code Online (Sandbox Code Playgroud)

所以 s-insert 将在光标位置插入主要的 X-selection - 就像在 xterm 中一样......