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

7
我想通过yank来覆盖文本,有没有办法做到这一点?
kill-ring:
text-i-want-to-paste

之前:

abcdefghijklmnopqrstuvwxyz
^
corsor

之后:

text-i-want-to-pasteuvwxyz
3个回答

8

打开delete-selection-mode。然后选择要替换的文本。然后按下C-y键。启用delete-selection-mode后,您只需像在Emacs之外一样即可替换所选文本。同时,C-y也会替换它。


6

你也可以使用defadvice。这将仅在overwrite-mode开启时起作用:

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

5

这里:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接