Паредит и транспонировать кодовые блоки
Если у меня есть следующее s-выражение:
(if true (this) (that))
И я хочу:
(if true (that) (this))
Как паредит помогает транспонировать (this)
а также (that)
?
1 ответ
Решение
Я не знаю, что такое "paredit", но в Emacs вы можете поставить точку между (this)
а также (that)
и нажмите CMt, который запускает команду transpose-sexps
:
Как Ct (
transpose-chars
), но относится к секстам.В отличие от
transpose-words
Точка должна быть между двумя полами, а не посреди пола, чтобы транспонировать.С ненулевым префиксом arg ARG, эффект заключается в том, чтобы взять sexp до точки и перетащить его вперед за ARG других sexps (назад, если ARG отрицательно). Если ARG равен нулю, полы, заканчивающиеся в или после точки и в или после метки, меняются местами.