使用Paredit时,我经常遇到以下问题(管道字符代表光标):

(foo |bar baz)

我想将bar括在括号中,因此我使用paredit-wrap-around(M-()来获取此代码:
(foo (|bar) baz)

当我想将bar放在字符串中时,同样适用,我可以使用M-“来获得此信息:
(foo "|bar" baz)

但是,Clojure还将方括号[]和花括号{}用于矢量, map 和集合。这些似乎没有paredit的“环绕”命令。所以在这种情况下要将bar放入向量中,通常使用[键创建一个新向量:
(foo [|] bar baz)

后跟一个paredit-forward-slurp-sexp(C-→),结果为:
(foo [| bar] baz)

我想删除bar之前插入的空格字符。这可能吗?为什么从空表达式到包含一项的paredit保留空格字符?不应该将添加到S表达式中的第一个项目始终向右推到开头括号吗?

最佳答案

Paredit在很长一段时间内都有paredit-wrap-curlyparedit-wrap-square。如果您想使用它们,只需将它们绑定(bind)到一个听起来听起来不错的琴键上,然后使用它即可。如果您使用的paredit版本太旧而这些功能不存在,则应进行升级(但我认为您不应该这样做,因为slurp命令可以使用它们)。

关于emacs - 提取第一个表达式时如何避免多余的空格字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17395553/

10-12 18:31