在 slime 中包裹 s-expression (emacs)

wrap s-expression in slime (emacs)

是否有使用 slime 包裹 s 表达式的捷径?

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

IntelliJ (a Java IDE) 允许这样的事情:
x > 3.if + TAB
屈服

if (x > 3) {

    }

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

横条表示光标。

有 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),然后kill该区域;在您需要的地方键入并拉出(粘贴)文本。

另请参阅 Expressions with Balanced Parentheses(例如 forward-sexp),在 Emacs 中可用。