mem*_*ius 106 emacs copy-paste
当我在Emacs 22.1.1中剪切(杀死)文本时(在X中,在KDE中,在Kubuntu上的自己的窗口中),我无法在任何其他应用程序中粘贴(猛拉)它.
Chr*_*way 119
我们在这里要小心我们的定义
kill-ring-save(通常结合于M-w).yank(通常结合于C-y).就我而言(在GNOME上):
要使系统复制与Emacs粘贴和Emacs复制一起使用系统粘贴,您需要添加(setq x-select-enable-clipboard t)到您的.emacs.或者试试
META-X set-variable RET x-select-enable-clipboard RET t
Run Code Online (Sandbox Code Playgroud)我认为这是非常标准的现代Unix行为.
同样重要的是要注意(虽然你说你在一个单独的窗口中使用Emacs),当Emacs在控制台中运行时,它完全脱离系统和X剪贴板:在这种情况下剪切和粘贴由终端调解.例如,终端窗口中的"编辑 - >粘贴"应该与将剪贴板中的文本键入Emacs缓冲区的方式完全相同.
mem*_*ius 90
将以下内容插入您的.emacs文件:
(setq x-select-enable-clipboard t)
Run Code Online (Sandbox Code Playgroud)
jfm*_*fm3 10
我把它粘在我的.emacs中:
(setq x-select-enable-clipboard t)
(setq interprogram-paste-function 'x-cut-buffer-or-selection-value)
Run Code Online (Sandbox Code Playgroud)
我随后在从Emacs中的任何东西到任何其他X11或Gnome应用程序中来回切换和粘贴时基本没有问题.
额外:要让Emacs中的这些事情发生而不必重新加载整个.emacs,请在.emacs缓冲区中每个表达式的紧密关注之后用光标执行Cx Ce.
祝好运!
Rus*_*art 10
在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)
Run Code Online (Sandbox Code Playgroud)
我假设你通过emacs表示X下的Emacs(即不在终端窗口内).
有两种方法:
可用的剪贴板操作:
这适用M-w于 Mac OSX。只需添加到您的.emacs文件中。
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))
(defun paste-to-osx (text &optional push)
(let ((process-connection-type nil))
(let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
(process-send-string proc text)
(process-send-eof proc))))
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx)
Run Code Online (Sandbox Code Playgroud)
来源https://gist.github.com/the-kenny/267162