Я использую Paredit в Emacs для редактирования кода Lisp. Как мне удалить лишнюю пару скобок, которую я случайно вставил? Paredit не позволяет этого без дополнительных команд.
((square 5))
в (square 5)
Я использую Paredit в Emacs для редактирования кода Lisp. Как мне удалить лишнюю пару скобок, которую я случайно вставил? Paredit не позволяет этого без дополнительных команд.
((square 5))
в (square 5)
Это называется paredit-splice-sexp
, привязка клавиш - M-s
. Взгляните на шпаргалку по paredit здесь.
Прочтите о barfage и slurpage.
Вы также можете установить «paredit-menu.el», который предоставляет меню действий с всплывающими подсказками, показывающими их эффекты.
Paredit иногда попадает в ситуацию, когда проще всего выключить его, исправить все и снова включить. Однако это того стоит.
Если бы я обнаружил случайные лишние скобки сразу после вставки этих лишних скобок, я бы вызвал команду отмены. Если бы я увидел дополнительные скобки намного позже, то есть команды paredit для их исправления, как указано в других ответах, но если бы я не знал этих команд, то я бы поставил точку где-нибудь во внутренней форме, а затем набрал бы следующее, при условии что режим CUA включен.
C-M-u C-M-SPC C-x <timeout> <left> C-M-SPC C-v
Параметр paredit не позволяет нам удалять скобки, пока внутри есть какие-либо элементы. Моя уловка состоит в том, чтобы вырезать правильный код и вставить его в другое место рядом. Он оставит лишние скобки пустыми, теперь я могу его удалить. На самом деле правильный способ - использовать M-s
, чтобы восстановить его. И наоборот, мы можем вставить один парен, используя C-q (
или C-q }
.