Удалить текущее (неатомарное) s-выражение в Emacs
Есть ли простой способ удалить наименьшее возможное неатомарное s-выражение на основе расположения курсора? Я хочу повернуть это ("|" - курсор)
(defun foo (bar)
(if bar
|789
(+ 456 123)))
в это
(defun foo (bar)
|)
Это кажется полезным, но я не смог найти подходящую (одношаговую) команду в шпаргалке Paredit.
3 ответа
Решение
Я также не нашел предопределенную команду.
К счастью, с Emacs действительно легко реализовать свой собственный.
Например:
(define-key global-map (kbd "C-c C-d")
(lambda () (interactive) (backward-up-list) (paredit-kill)))
C-M-u
делает правильные вещи внутри строк в paredit 23, поэтому `CMu CMk'будет работать даже внутри строки.
Предполагаемый курсор находится не под номером 789, а внутри строки "Foo" в этом месте.
Чем эта команда не выполнится.
Вот почему ar-kill-parentized-atpt и связанные расширения существуют в