В Emacs есть такие замечательные функции, как удалить слово после курсора (kill-word), перед курсором (backward-kill-word), а так же удалить все символы от курсора до конца строки (kill-line). Однако у них есть одна особенность, они не просто удаляют символы, а еще копируют их в буфер обмена (так называемый kill ring). Лично меня подобное поведение не устраивает, поэтому я написал свои аналоги этих функций.
Т.к. Emacs редактор с открытыми исходными кодами, то изобретать я ничего не стал, просто открыл исходники функций и скопировал их, заменив (kill-region) на (delete-region), которая в kill ring не "гадит":
(defun cfg:delete-word (arg) (interactive "p") (delete-region (point) (progn (forward-word arg) (point)))) (defun cfg:backward-delete-word (arg) (interactive "p") (cfg:delete-word (- arg))) (defun cfg:delete-line () (interactive) (delete-region (point) (save-excursion (move-end-of-line 1) (point))) (delete-char 1))
Все, осталось лишь назначить их на нужные сочетания клавиш.
Комментариев нет:
Отправить комментарий