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

Kei*_*awa 6 emacs overwrite yank

我想用下面的方法覆盖文本.有没有办法做到这一点?

杀死环:

text-i-want-to-paste
Run Code Online (Sandbox Code Playgroud)

之前:

abcdefghijklmnopqrstuvwxyz
^
corsor
Run Code Online (Sandbox Code Playgroud)

后:

text-i-want-to-pasteuvwxyz
Run Code Online (Sandbox Code Playgroud)

谢谢.

Dre*_*rew 6

打开delete-selection-mode.然后选择要替换的文本.然后点击C-y.与delete-selection-mode启用,您只需键入内容,替换所选文本,像通常那样Emacs的外面.并C-y取代它.


nop*_*e11 6

您也可以使用 defadvice。那么这只会在覆盖模式打开时起作用:

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


abo*_*abo 5

这里:

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

(global-set-key (kbd "C-M-y") 'crazy-yank)
Run Code Online (Sandbox Code Playgroud)