代码之家  ›  专栏  ›  技术社区  ›  Dick Barends

Paredit和transpose代码块

  •  1
  • Dick Barends  · 技术社区  · 6 年前

    如果我有以下s表达式:

    (if true (this) (that))
    

    我想要:

    (if true (that) (this))
    

    paredit如何帮助转置 (this) (that) ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   sds    6 年前

    我不知道“paredit”是什么,但在库存Emacs中,您可以放置 点之间 (this) (that) 然后击中 C-M-t 其中运行 命令 transpose-sexps :

    像C-t( transpose-chars ),但适用于sexps。

    不像 transpose-words ,点必须介于两个sexps之间,而不是 在要换位的sexp中间。

    使用非零前缀arg arg,效果是在点之前使用sexp 并将其向前拖过ARG other sexps(如果ARG为负,则向后)。 如果ARG为零,则在点或点之后以及标记处或标记之后结束的sexps 互换。