如何在Emacs中用yank覆盖文本?

时间:2014-02-27 16:14:12

标签: emacs overwrite yank

我想用yank覆盖文本,如下所示。有没有办法做到这一点?

杀环:

text-i-want-to-paste

在:

abcdefghijklmnopqrstuvwxyz
^
corsor

后:

text-i-want-to-pasteuvwxyz

感谢。

3 个答案:

答案 0 :(得分:6)

开启delete-selection-mode。然后选择要替换的文本。然后点击C-y。启用delete-selection-mode后,您只需键入以替换所选文本,就像通常在Emacs外部一样。 C-y也取代了它。

答案 1 :(得分:4)

下面:

(defun crazy-yank ()
  (interactive)
  (delete-char (length (current-kill 0)))
  (yank))

(global-set-key (kbd "C-M-y") 'crazy-yank)

答案 2 :(得分:4)

您也可以使用defadvice。然后,只有在打开覆盖模式时才会起作用:

(defadvice yank (before yank-if-overwrite)
  (if (bound-and-true-p overwrite-mode)
      (delete-char (length (current-kill 0))))
  )
(ad-activate 'yank)