Emacs Elisp:将缓冲区复制到剪贴板
用Elisp做了一番努力,但没有成功——说的参数数量不正确。如果你知道Elips,也许这可以用零努力优雅地完成。但我会把我的笨手笨脚的东西放进去,这样你马上就会明白我想做什么Emacs Elisp:将缓冲区复制到剪贴板,emacs,lisp,elisp,Emacs,Lisp,Elisp,用Elisp做了一番努力,但没有成功——说的参数数量不正确。如果你知道Elips,也许这可以用零努力优雅地完成。但我会把我的笨手笨脚的东西放进去,这样你马上就会明白我想做什么 (defun copy-all () "Copy entire buffer to clipboard" (interactive) (let ((pos (point))) (progn (mark-whole-buffer) (cl
(defun copy-all ()
"Copy entire buffer to clipboard"
(interactive)
(let ((pos (point)))
(progn
(mark-whole-buffer)
(clipboard-kill-ring-save)
(keyboard-quit)
(goto-char pos)
(message "Copy done."))))
使用
保存偏移
,而不是保存点并在以后恢复。它更健壮,还可以恢复缓冲区。也不需要显式的progn
这就是说,在本例中,只需将范围传递到剪贴板kill ring save
,而不必尝试处理区域。例如:
(defun copy-all ()
"Copy entire buffer to clipboard"
(interactive)
(clipboard-kill-ring-save (point-min) (point-max)))
请记住,如果您不确定函数需要哪些参数,则在emacs中始终可以使用带有
描述函数(C-HF)的elisp帮助。您让它变得比必须的更难
(defun copy-whole-buffer ()
"Copy entire buffer to clipboard"
(interactive)
(clipboard-kill-ring-save (point-min) (point-max)))