当我在Emacs 22.1.1中剪切(杀死)文本时(在X中,在KDE中,在Kubuntu上的自己的窗口中),我无法在任何其他应用程序中粘贴(猛拉)它.
我们在这里要小心我们的定义
一个Emacs的拷贝是命令kill-ring-save
(通常结合于M-w).
一个系统副本是你通常从按下获得C-c(或选择"编辑- >复制"在应用程序窗口).
一个X拷贝是"身体",突出用鼠标光标文字.
一个Emacs的膏是命令yank
(通常结合于C-y).
一个系统膏是你通常从按下获得C-v(或选择在应用程序窗口中的"编辑-粘贴").
一个X膏被按下"中心鼠标按钮"(通过按压左和右鼠标按钮一起模拟的).
就我而言(在GNOME上):
Emacs和系统副本通常都可以使用X paste.
X副本通常适用于Emacs粘贴.
要使系统复制与Emacs粘贴和Emacs复制一起使用系统粘贴,您需要添加(setq x-select-enable-clipboard t)
到您的.emacs
.或者试试
META-X set-variable RET x-select-enable-clipboard RET t
我认为这是非常标准的现代Unix行为.
同样重要的是要注意(虽然你说你在一个单独的窗口中使用Emacs),当Emacs在控制台中运行时,它完全脱离系统和X剪贴板:在这种情况下剪切和粘贴由终端调解.例如,终端窗口中的"编辑 - >粘贴"应该与将剪贴板中的文本键入Emacs缓冲区的方式完全相同.
将以下内容插入您的.emacs
文件:
(setq x-select-enable-clipboard t)
我把它粘在我的.emacs中:
(setq x-select-enable-clipboard t) (setq interprogram-paste-function 'x-cut-buffer-or-selection-value)
我随后在从Emacs中的任何东西到任何其他X11或Gnome应用程序中来回切换和粘贴时基本没有问题.
额外:要让Emacs中的这些事情发生而不必重新加载整个.emacs,请在.emacs缓冲区中每个表达式的紧密关注之后用光标执行Cx Ce.
祝好运!
在Emacs中复制和粘贴的难点在于你希望它独立于内部kill/yank工作,并且你希望它在终端和gui中都能工作.现有终端或gui的强大解决方案,但不是两者兼而有之.安装xsel(例如sudo apt-get install xsel
)之后,这是我为复制和粘贴做的事情:
(defun copy-to-clipboard () (interactive) (if (display-graphic-p) (progn (message "Yanked region to x-clipboard!") (call-interactively 'clipboard-kill-ring-save) ) (if (region-active-p) (progn (shell-command-on-region (region-beginning) (region-end) "xsel -i -b") (message "Yanked region to clipboard!") (deactivate-mark)) (message "No region active; can't yank to clipboard!"))) ) (defun paste-from-clipboard () (interactive) (if (display-graphic-p) (progn (clipboard-yank) (message "graphics active") ) (insert (shell-command-to-string "xsel -o -b")) ) ) (global-set-key [f8] 'copy-to-clipboard) (global-set-key [f9] 'paste-from-clipboard)
我假设你通过emacs表示X下的Emacs(即不在终端窗口内).
有两种方法:
(仅适用于unix OS)用鼠标突出显示所需文本(将其复制到X剪贴板),然后单击鼠标中键粘贴.
突出显示所需的文本,然后"Mx clipboard-kill-ring-save"(请注意,您可以将其绑定到更简单的键).然后在您喜欢的应用程序中"编辑 - >粘贴".
可用的剪贴板操作:
clipboard-kill-ring-save - 从Emacs到剪贴板的复制选择
clipboard-kill-region - 从Emacs到剪贴板的选择
clipboard-yank - 从剪贴板粘贴到Emacs
有一篇EmacsWiki文章解释了在X下复制和粘贴的一些问题以及如何配置它来工作.