Попробуйте последовательность клавиш CMu CM-SPC (то есть, удерживая клавиши Control и Meta , нажмите u и Пробел в последовательности), который выполняет команды backward-up-sexp
и mark-sexp
.
Редактировать:
Я допустил ошибку: backward-up-sexp
не существует в стандартеEmacs.Я написал это именно из-за проблемы, упомянутой в комментарии lkahtz, о том, что существующая функция backward-up-list
не будет работать, когда точка находится в двойных кавычках.
(defun backward-up-sexp (arg)
(interactive "p")
(let ((ppss (syntax-ppss)))
(cond ((elt ppss 3)
(goto-char (elt ppss 8))
(backward-up-sexp (1- arg)))
((backward-up-list arg)))))
(global-set-key [remap backward-up-list] 'backward-up-sexp)