它变了
(a b c d (1 2 |3 4) ha ha ha)转到
|(1 2 (a b c d 3 4 ha ha ha))这种转变有什么用呢?
发布于 2013-08-12 16:30:57
严格地说,它用于逆转内部表达式的嵌套。
例如:
(let [foo bar] (if a b| c))变成了
(if a b (let [foo bar]| c))至于用例,我从来没有具体地使用过它,但是它是更大的宏的一个很好的构建块
发布于 2015-01-30 15:22:56
另外,关于实际使用,只需快速添加一下,您可以查看本教程的1:40分钟:http://emacsrocks.com/e14.html
打电话给M-?将光标放在“做某事”的开头,扩大了let的范围,如下所示:
(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))))直接到这一点:
(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))))干杯!安德烈斯
发布于 2013-08-13 00:48:48
加上Nirk的回答
对于智能changes用户,M-x sp-prefix-save-excursion M-x sp-convolute-sexp更改
(let [foo bar] (if a b| c))和
(let [foo bar] (if a b |c))转到
(if a b (let [foo bar] |c))对于paredit用户,M-x paredit-convolute-sexp更改
(let [foo bar] (if a b| c))和
(let [foo bar] (if a b |c))转到
|(if a b(let [foo bar] c))和
|(if a b (let [foo bar] c))对于那些两者都不使用的人,如果您包括
(require 'paredit)
(require 'smartparens)在init文件中和这两行中,没有设置Emacs来使用paredit模式或smartparens模式,所以一切都很好。如果您从包存档中安装paredit包,那么autoloads文件可能设置Emacs使用paredit模式,也可能不会设置Emacs,而paredit没有自定义界面。如果您安装了smartparens包,不管autoloads文件做什么,如果它的默认值不是nil,则可以使用自定义界面将智能package全局模式设置为零(虽然目前默认为零)。
https://stackoverflow.com/questions/18192010
复制相似问题