首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时使用paredit barf命令

何时使用paredit barf命令
EN

Stack Overflow用户
提问于 2014-07-16 17:25:39
回答 1查看 657关注 0票数 3

Paredit提供barf和slurp命令。我可以看到何时使用slurp命令,但我不确定何时应该使用barf命令。

当我有了这个密码:

代码语言:javascript
复制
(foo num)
(bar num)

我会写这个:

代码语言:javascript
复制
(let ((numb blah)))
(foo num)
(bar num)

然后吃两次就得到这个:

代码语言:javascript
复制
(let ((numb blah))
  (foo num)
  (bar num))

起初,我认为与该任务相反的任务可能需要使用barf,但对于这一点,我只需移动到(foo num)的开始,然后按<M-up>,它运行paredit-剪接-sexp杀伤-向后命令,然后返回如下:

代码语言:javascript
复制
(foo num)
(bar num)

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

注意:当您多次重复slurp命令时,您可以调用撤销命令来取消其中一些命令。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-19 03:24:30

这是Paredit社区所有成员普遍接受的事实,即贫民窟和谷仓与这种模式是分不开的。用Paredit编写一些lisp代码,就会出现这样的需求。这更多是由于结构编辑的性质和Paredit对不平衡括号的厌恶,而不是任何其他因素。

当不使用Paredit时,可以通过在添加和删除括号的同时用光标(或者可能用鼠标)导航来实现这一点。Paredit不允许它的用户以这样一种不受欢迎的方式违反它的括号,因此自然的结论是Paredit用户必须呕吐和吞咽。

举个例子:

创建了一个代码块,一个if语句。

代码语言:javascript
复制
(when (|so bar fuux baz)
     (foo suux duux))

这个块需要使用and逻辑运算符测试两个条件,而不是测试一个条件。M-(可以用于包装,但它不会包装多汁的bar fuux baz符号。

代码语言:javascript
复制
(when ((|so) bar fuux baz)
      (foo suux duux))

咕噜

代码语言:javascript
复制
(when ((|so bar fuux baz))
      (foo suux duux))

犯了个错误。Baz属于第二个条件块。巴夫。

代码语言:javascript
复制
(when ((|so bar fuux) baz)
      (foo suux duux))

其余的不包括使用泥浆或谷仓。

代码语言:javascript
复制
(when (and (|so bar fuux) baz)
      (foo suux duux))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24787021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档