Используя Emacs без каких-либо файлов инициализации и предоставленный вами код (put-text...
, я могу удалить символы в начале строки с помощью Mx delete-char ( Cd ) и удалите символы в конце строки с помощью Mx backward-delete-char ( DEL (ну, это действительно delete-backward-char
)).
Отредактировано при уточнении вопроса :
Эти два совета удалят весь нематериальный регион:
(defadvice delete-char (around delete-char-intangible activate)
"when about to delete a char that's intangible, delete the whole region
Only do this when #chars is 1"
(if (and (= (ad-get-arg 0) 1)
(get-text-property (point) 'intangible))
(kill-region (point) (save-excursion (forward-char 1) (point)))
ad-do-it))
(defadvice delete-backward-char (around delete-backward-char-intangible activate)
"when about to delete a char that's intangible, delete the whole region
Only do this interactively and when #chars is 1"
(if (and (= (ad-get-arg 0) 1) (> (point) (point-min))
(get-text-property (- (point) 1) 'intangible))
(kill-region (point) (save-excursion (backward-char 1) (point)))
ad-do-it))
Совет проверяет, вызывается ли команда с аргументом 1, и только после этого удаляет всю нематериальную область, в противном случае он ведет себя как обычно.