Как перезаписать текст yank в Emacs?

Я хочу перезаписать текст рывком следующим образом. Есть какой-либо способ сделать это?

кольцо убийства:

text-i-want-to-paste

До:

abcdefghijklmnopqrstuvwxyz
^
corsor

После:

text-i-want-to-pasteuvwxyz

Спасибо.


person Kei Minagawa    schedule 27.02.2014    source источник


Ответы (3)


Включите delete-selection-mode. Затем выберите текст для замены. Затем нажмите C-y. При включенном delete-selection-mode вы просто вводите текст, чтобы заменить выделенный текст, как это обычно делается вне Emacs. И C-y тоже заменяет его.

person Drew    schedule 27.02.2014

Вы также можете использовать defavice. Тогда это будет работать только при включенном режиме перезаписи:

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

Здесь:

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

(global-set-key (kbd "C-M-y") 'crazy-yank)
person abo-abo    schedule 27.02.2014