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-剪接-sexp杀伤-向后命令,然后返回如下:
(foo num)
(bar num)在哪些情况下使用barf命令会很方便?
注意:当您多次重复slurp命令时,您可以调用撤销命令来取消其中一些命令。
发布于 2016-01-19 03:24:30
这是Paredit社区所有成员普遍接受的事实,即贫民窟和谷仓与这种模式是分不开的。用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))https://stackoverflow.com/questions/24787021
复制相似问题