Начиная с точки или активной области, как быстро (одним нажатием клавиши / командой) «развернуть», чтобы включить следующий набор заключающих скобок?
Если я начну с: ( |
означает точку)
(defn foo [x] (+ x |42))
Или, если я начну с: ( <
и >
выделите выбранный регион)
(defn foo [x] (+ x <42>|))
Я хочу закончить с
(defn foo [x] <(+ x 42)>|)
источник
expand-region
вызывается специальная функция для отметки спискаer/mark-outside-pairs
.Я согласен, что вы должны попробовать,
expand-region
как предложено в другом ответе (за что я голосую).Но на тот случай, если вы не знакомы с соответствующими встроенными командами:
В вашем первом примере, где нет региона, вы могли бы использовать,
C-M-u C-M-SPC
чтобы отметить список включения. Если выбранный регион уже существует, эти команды расширяют его. Таким образом, если42
выбрано и вы нажмете,C-M-u
это расширит выделение назад к началу списка, но не будет включать закрывающую скобку.Таким образом, в случае отсутствия чего-то подобного,
expand-region
я ударил бы,C-g
чтобы отменить любой текущий выбор, затемC-M-u
вернуться назад столько паренов, сколько вы хотите, затемC-M-SPC
отметитьисточник
В случае с активным регионом, hв lispy будет делать то, что вы хотите. Смотрите мой недавний вступительный пост .
В первом случае вам нужно M-m h.
обновление: все опции, которые у вас есть
lispy
Начиная с:
Здесь
~
обозначает|
точку ( начало области) и обозначает точку (конец области).С hвами получается:
С lвами получается:
С kвами получается (отменяется с j):
С 2kили kkвы получаете:
С dвами получается:
С d>вами получается (отменяется с <):
С d2>или d>>вы получаете:
С mвами получается:
Просто суммировать, когда область активна, h, j, k, l являются стрелки , которые двигают область. >увеличивает область на одну семантическую единицу в направлении точки. <сжимает область на одну семантическую единицу в направлении точки. mдеактивирует знак. iвыбирает первый элемент региона и dобменивается точкой и отметкой.
источник