При написании кодов LISP иногда я глубоко погружен во вложенное выражение, и все, что я хочу, это вставить все отсутствующие закрывающие скобки. Прямо сейчас я просто вставляю их до тех пор, пока не получу неподходящую парен, но это не очень эффективно.
Есть ли команда для вставки всех пропущенных скобок?
К вашему сведению, я использую smartparens для автоматической вставки совпадающих символов. Тем не менее, иногда мне просто нужно сделать это.
development
rlazo
источник
источник
]
выступал в роли суперправого парена, закрывая все открытые парены по вашему желанию.Ответы:
Вот функция, которая закрывает все незамкнутые скобки и другие совпадающие пары. Это зависит от синтаксического разбора Emacs. Он поддерживает только односимвольные пары, поэтому что-то вроде
{-
будет закрыто}
, а не-}
. Для Лиспа это не имеет значения.источник
([-!-foo]
, вы вставляете])
в точку или)
послеfoo]
?([-!-foo]
, я бы вставил)
послеfoo]
. Но я могу ошибаться, конечно. Может быть, @rlazo может уточнить.Я обнаружил, что если у вас установлена слизь, есть команда для этого, называемая
slime-close-all-parens-in-sexp
источник
Очень примитивный (и почти наверняка неправильный) способ сделать это
Среди прочих ограничений предполагается, что все круглые скобки, которые нужно вставить:
Я думаю, это может быть достаточно, чтобы быть полезным для вашего конкретного случая использования
источник