首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在paredit模式下paredit-卷积- in的用途是什么?

在paredit模式下paredit-卷积- in的用途是什么?
EN

Stack Overflow用户
提问于 2013-08-12 16:25:05
回答 4查看 1.9K关注 0票数 10

它变了

代码语言:javascript
复制
(a b c d (1 2 |3 4) ha ha ha)

转到

代码语言:javascript
复制
|(1 2 (a b c d 3 4 ha ha ha))

这种转变有什么用呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-12 16:30:57

严格地说,它用于逆转内部表达式的嵌套。

例如:

代码语言:javascript
复制
(let [foo bar] (if a b| c))

变成了

代码语言:javascript
复制
(if a b (let [foo bar]| c))

至于用例,我从来没有具体地使用过它,但是它是更大的宏的一个很好的构建块

票数 7
EN

Stack Overflow用户

发布于 2015-01-30 15:22:56

另外,关于实际使用,只需快速添加一下,您可以查看本教程的1:40分钟:http://emacsrocks.com/e14.html

打电话给M-?将光标放在“做某事”的开头,扩大了let的范围,如下所示:

代码语言:javascript
复制
(defun my-other-command ()
  (when (and (this-predicate)
             (that-predicate))
    (let ((v (calculate-v))
          (x (calculate-x)))
      (do-something)
      (do-some-more)
      (do-a-third-thing))))

直接到这一点:

代码语言:javascript
复制
(defun my-other-command ()
  (let ((v (calculate-v))
        (x (calculate-x)))
    (when (and (this-predicate)
               (that-predicate))
      (do-something)
      (do-some-more)
      (do-a-third-thing))))

干杯!安德烈斯

票数 17
EN

Stack Overflow用户

发布于 2013-08-13 00:48:48

加上Nirk的回答

对于智能changes用户,M-x sp-prefix-save-excursion M-x sp-convolute-sexp更改

代码语言:javascript
复制
(let [foo bar] (if a b| c))

代码语言:javascript
复制
(let [foo bar] (if a b |c))

转到

代码语言:javascript
复制
(if a b (let [foo bar] |c))

对于paredit用户,M-x paredit-convolute-sexp更改

代码语言:javascript
复制
(let [foo bar] (if a b| c))

代码语言:javascript
复制
(let [foo bar] (if a b |c))

转到

代码语言:javascript
复制
|(if a b(let [foo bar]  c))

代码语言:javascript
复制
|(if a b (let [foo bar] c))

对于那些两者都不使用的人,如果您包括

代码语言:javascript
复制
(require 'paredit)
(require 'smartparens)

在init文件中和这两行中,没有设置Emacs来使用paredit模式或smartparens模式,所以一切都很好。如果您从包存档中安装paredit包,那么autoloads文件可能设置Emacs使用paredit模式,也可能不会设置Emacs,而paredit没有自定义界面。如果您安装了smartparens包,不管autoloads文件做什么,如果它的默认值不是nil,则可以使用自定义界面将智能package全局模式设置为零(虽然目前默认为零)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18192010

复制
相关文章

相似问题

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