如何在 Emacs 中通过 yank 来覆盖文本?

问题描述 投票:0回答:3

我想通过猛拉来覆盖文本,如下所示。有什么办法可以做到这一点吗?

杀环:

text-i-want-to-paste

之前:

abcdefghijklmnopqrstuvwxyz
^
corsor

之后:

text-i-want-to-pasteuvwxyz
emacs paste overwrite yank
3个回答
8
投票

打开

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


6
投票

您还可以使用 defadvice。那么这仅在覆盖模式打开时才有效:

(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)
© www.soinside.com 2019 - 2024. All rights reserved.