Удалить до пробела в Emacs
-
09-10-2019 - |
Вопрос
Есть ли функция EMACS для удаления (вперед или назад) до первого пробела? Например, у меня есть следующая линия, и курсор отмечен каретой:
someword ?(&)!* morewords
^
Я хочу удалить обратную последовательность не альфаноковарных символов, но не слово someword
. Анкет С использованием backward-delete-word
Будет также уничтожить слово. То же самое с курсором перед странными персонажами и kill-word
.
Решение
Я не знаю никакой функции, но это достаточно легко сделать:
(defun my-delete-backward-to-ws ()
(interactive)
(delete-region (point) (save-excursion (skip-syntax-backward "^ ") (point))))
Другие советы
EMACS имеет функцию zap-to-char
который удалит все до определенного персонажа. Таким образом, это не сработает для всех пробелов, но если ваша конкретная проблема - это все в зависимости от места, вы можете использовать эту функцию. Дайте функции отрицательный аргумент для задом наперед.