1

paredit-close-round (通常与 close paren 绑定)结合了两件事:

  1. C-M-- C-M-u

  2. 删除一些空格

该函数的文档有这个简单的例子:

(a b |c   )
->
(a b c)|

我明白为什么C-M-- C-M-u有用;使用 before 很有用C-x C-e,我也明白为什么删除这些空格的命令可能很有用,但我不明白为什么有一个将两者结合的命令。必须有一个我缺少的使用场景,它可以解释为什么空间清理功能特别添加到paredit-close-round而不是添加到其正向对应项paredit-backward-up

4

1 回答 1

3

paredit-close-paren有点暗示您已经完成了该 sexp 的编辑,因此应该删除最后留下的任何空格。另外,它绑定到一个“编辑”键(close-paren),所以它可以更改缓冲区内容。

paredit-forward-up(或带有负前缀的向后向上)是一个移动命令,因此它不应该更改缓冲区内容。

这是一个用例:(点在|

(let ((hi t))|
  (forward-char 1)
  )
  1. 如果您完成了对该let语句的编辑,则forward-char应该删除该换行符(在 之后),因此您点击)了将您移出let并很好地清理它的位置。
  2. 如果您尚未完成编辑let,但您想暂时移出它,那么您实际上可能希望保留该换行符(它可以更轻松地移动到正确的位置,并且可以帮助您记住还有未完成的业务),所以你改用C-M-n它,这会让你在let不编辑任何东西的情况下离开。
于 2013-10-03T19:56:36.107 回答