在slime中包装s-expression(emacs)

时间:2017-05-28 19:29:39

标签: emacs lisp slime

是否有一种使用粘液包装s表达式的简短方法?

假设我已经完成了一些代码并且我意识到我需要一个变量(例如出于效率原因),因此希望用let包装它或者想要使它尾递归并且需要用{包装它} {1}},最快的方法是什么?有捷径吗?

IntelliJ(Java IDE)允许以下内容:
labels + TAB
得到

x > 3.if

那么在slime / emacs中是否有任何“sexp-wrapping”快捷方式(后缀或前缀)?

1 个答案:

答案 0 :(得分:1)

条形代表光标。

使用paredit

有一个wrap-round命令,绑定到 M - (。但是在向表达式添加上下文时,我通常按如下方式执行:

|code

打开括号(自动添加结束符号):

(|)code

...类型......

(let |)code

致电 paredit-forward-slurp-sexp C-right

(let | code)

另请参阅The Animated Guide to Paredit

没有paredit

|code

调用 mark-sexp C-M-Space ),然后杀死该区域;键入并粘贴(粘贴)您需要的文本。

另请参阅Emacs中提供的Expressions with Balanced Parentheses(例如forward-sexp