Это странный запрос, но, просто чтобы продемонстрировать удивительные возможности Emacs, я сделаю это для вас:
(defvar cursor-color-original nil
"The original cursor color, saved while backspacing.")
(defvar cursor-color-while-backspace "Red"
"The cursor color while backspacing.")
(defvar cursor-color-backspace-commands
'(backward-delete-char-untabify delete-backward-char)
"The commands that switch cursor color.")
(defvar cursor-color-backspace-keys
(list (kbd "<DEL>"))
"The keys that switch cursor color.")
(defun cursor-color-note-backspace ()
"Switch cursor color when backspacing."
(if (or (memq this-command cursor-color-backspace-commands)
(member (this-command-keys) cursor-color-backspace-keys))
(unless (equal (frame-parameter nil 'cursor-color)
cursor-color-after-backspace)
(setq original-cursor-color (frame-parameter nil 'cursor-color))
(set-cursor-color cursor-color-after-backspace))
(when (equal (frame-parameter nil 'cursor-color)
cursor-color-after-backspace)
(set-cursor-color original-cursor-color))))
Чтобы включить:
(add-hook 'post-command-hook 'cursor-color-note-backspace)
Чтобы отключить:
(remove-hook 'post-command-hook 'cursor-color-note-backspace)
Обратите внимание, что если это не работает для вас, вы должны сделать Ch c DEL и добавить функцию, вызываемую DEL
, к cursor-color-backspace-commands
.Вы также можете добавить ключи к cursor-color-backspace-keys
.
Счастливого взлома!
PS.Пожалуйста, сделайте Ch f RET для каждой функции, которую вы не знаете.Это поможет вам самостоятельно написать такой фрагмент в следующий раз.