2009-11-25 82 views
5

我怎样才能使emacs命令复制文本(到杀戒)通过追加? (为什么没有这样的内置命令?)emacs命令附加到环

Appending Kills提到C-M-w(`append-next-kill'),它允许我使用C-d或C-k等终止命令来追加。但它是为了杀死文本而不是复制它们。

回答

6

其实,有这样一个内置的命令。 C-M-w将追加后续副本以及杀死。所以你会标记你想复制的区域,然后输入C-M-w,然后输入M-w,接下来的C-y将会取消加入的杀戮。

2

可追加注册满足您的需求吗?

3

播放与这个在你的.emacs文件的变化...

(defun append-kill-line (&optional arg) 
    "Append kill-line to current kill buffer, prefix arg kills from beginning of line." 
    (interactive "P") 
    (append-next-kill) 
    (kill-line arg) 
) 

(define-key global-map "\C-x\C-m" 'append-kill-line) 
1

各种kill命令使用一些小技巧来决定是否要追加。如果前一个命令与当前命令相同,则会追加;如果没有,它不会。这些函数使用值last-command来做到这一点,操纵这个值是获得你想要的东西的关键。

(defun copy-region-as-kill-append (beg end) 
    (interactive "r") 
    (let ((last-command 'kill-region)) 
    (copy-region-as-kill beg end)))