有没有一种简单的方法可以使用 slime 来包装 s-表达式?
假设我已经完成了一段代码,并且我意识到我需要一个变量(例如出于效率原因),因此想用 let
包装它,或者想让它尾递归并需要包装它与标签,最快的方法是什么?有捷径吗?
IntelliJ(Java IDE)允许执行以下操作:
x > 3.if
+ TAB
产生
if (x > 3) {
}
那么 slime/emacs 中有没有“sexp-wrapping”快捷方式(后缀或前缀)?
最佳答案
条形代表光标。
带 paredit
有一个wrap-round
命令,绑定(bind)到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),然后杀死该区域;在需要的地方键入文本并将其粘贴(粘贴)。
另请参阅Expressions with Balanced Parentheses (例如 forward-sexp
),可在 Emacs 中使用。
关于emacs - 将 s 表达式包裹在 slime 中 (emacs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44231208/