何时使用paredit barf命令



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-kill -向后,我得到这个:

(foo num)
(bar num)

在哪些情况下使用barf命令会很方便?

注意:当您重复slurp命令的次数超过必要时,您可以调用undo命令来取消其中的一些。

这是Paredit社区所有成员普遍接受的事实,slurpage和barfaage与模式是分不开的。使用Paredit和编写一些lisp代码,可能会出现对它们的需求。这主要是由于结构编辑的本质和Paredit对不平衡括号的厌恶,而不是其他因素。

当不使用Paredit时,可以通过在添加和删除括号的同时使用光标(或者可能使用鼠标)导航来完成。Paredit不允许它的用户以这种不希望的方式违反它的括号,因此自然的结论是,Paredit用户必须呕吐和发出啧啧声。

一个例子:

创建了一个代码块,一个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属于第二个条件块。呕吐 .

(when ((|so bar fuux) baz)
      (foo suux duux))

其余部分不包括使用浆液或垃圾。

(when (and (|so bar fuux) baz)
      (foo suux duux))

最新更新