Paredit提供barf和slurp命令。我可以看到何时使用slurp命令,但我不确定何时应该使用barf命令。
当我有这段代码时:
(foo num)
(bar num)
我会这样写:
(let ((numb blah)))
(foo num)
(bar num)
然后两次啜饮得到这个:
(let ((numb blah))
(foo num)
(bar num))
我一开始认为该任务的反面可能需要使用barf,但为此,我可以将点移动到(foo num)
的开头,然后按<M-up>
运行命令paredit- splice-sexp-killing-backward,我回来了:
(foo num)
(bar num)
使用barf命令会有什么方法可以使用?
注意:当你重复slurp命令的次数超过必要时,可以调用undo命令取消其中的一些命令。
答案 0 :(得分:3)
Paredit社区所有成员普遍接受的事实是,诽谤和扒窃与模式是分不开的。用Paredit写一些lisp代码,然后需要这些代码。这更多是由于结构编辑的性质和Paredit对不平衡括号的讨厌而不是任何其他因素。
当不使用Paredit时,可以通过在添加和删除括号的同时使用光标(或者可能使用鼠标)进行导航来完成。 Paredit不允许其用户以这种不受欢迎的方式违反其括号,因此自然的结论是Paredit用户必须进行barf和slurp。
一个例子:
创建一个代码块,一个if语句。
(when (|so bar fuux baz)
(foo suux duux))
这个块需要使用and
逻辑运算符测试两个,而不是测试一个条件。 M-(
可用于换行,但不会包裹多汁的bar fuux baz
符号。
(when ((|so) bar fuux baz)
(foo suux duux))
啜食
(when ((|so bar fuux baz))
(foo suux duux))
犯了错误。 Baz
属于第二个条件块。 BARF
(when ((|so bar fuux) baz)
(foo suux duux))
其余部分不包括使用slurpage或barfage。
(when (and (|so bar fuux) baz)
(foo suux duux))