emacs - 将 s 表达式包裹在 slime 中 (emacs)

标签 emacs lisp slime

有没有一种简单的方法可以使用 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/

相关文章:

emacs - 在 Windows 和 WSL 之间共享文件夹

emacs - Emacs 中define-globalized-minor-mode 的参数是什么

macros - 传递给宏的变量在错误的命名空间中被解析?

list - Lisp:List2 与 List1 的区别

lisp - 如何更新 lisp 中的节点

utf-8 - 如何让 quicklisp 在 Slime 中加载 rfc2388?

clojure REPL 不会获取对 defrecord 所做的更改

emacs - 你在你的标准 etags --regex=.. 调用中放了什么?

emacs - repl 不起作用(clojure 框)

python - 将代码从 Python 缓冲区发送到从 M-x ansi-term 运行的 IPython session