Как правильно оценить часть (+ 100 (+ 100 100))
в
(+ (+ 1 2) (+ 100 (+ 100 100)))
?
На данный момент я делаю это C-x C-e, что означает, что мне нужно найти конечную скобку, что в большинстве случаев сложно. Options > Paren Matching Highlighting
помогает, но мне все равно нужно перемещать курсор к конечной скобке, пока выделенное совпадение не станет начальной скобкой.
Одним из способов было бы иметь обратную версию C-x C-e, чтобы я мог поместить курсор в начальную скобку следующим образом:
(+ (+ 1 2) |(+ 100 (+ 100 100)))
а затем нажмите соответствующую комбинацию клавиш.
Или я мог бы поместить курсор внутри выражения, но не внутри меньших выражений:
(+ (+ 1 2) (+ | 100 (+ 100 100)))
и нажмите привязку клавиш. Потому что целиться в цель легче, если цель большая.
Как сделать такую команду? Или он уже предоставлен?
Боковое примечание: курсор в виде полосы и курсор в виде рамки
Пользователи Emacs, использующие курсор в виде прямоугольника (по умолчанию), могут задаться вопросом, куда я помещаю курсор с обозначением полосы выше. В emacs вы можете выбрать курсор в виде прямоугольника или курсор в виде полосы, (bar-cursor-mode t)
. Когда курсор в виде полосы находится между буквами A и B, курсор в рамке находится на B. Таким образом, полоса — это левая стенка коробки.
Кстати, концепция курсора в виде полосы полезна необычным образом: практика итерации от index1 до index2-1 в программировании удивляет новичков. Это помогает представить index1 и index2 как указывающие полосы (левые стены), а не прямоугольники.