在Slime中复制/粘贴整个Lisp表达式

7
有没有办法在Slime/Emacs中复制整个表单?例如,如果我有以下函数:
(myfunc (lst)
    (myotherfunc lst))

我想要复制/提取:

(myotherfunc lst)

当我的光标在某个表单的开放或关闭括号处(在Slime / Emacs执行括号匹配的地方)时,通过发出键盘快捷键来完成。
4个回答

14

10
在我的Emacs里,函数kill-sexp绑定到C-M-k。也就是说,假设光标位于一个平衡表达式的开放分隔符之前,同时按下Control、Meta和k键。
同样的命令也适用于其他各种非Lisp模式,例如在C-style模式下杀死大括号包含的块,尽管kill-sexp命令可能未绑定到相同的按键。

4

Emacs的次要模式ParEdit默认情况下可以在使用普通剪切 'C-k' 时实现此功能。我强烈建议任何使用emacs+slime的用户使用它。


在这里值得一提的是,对于不了解的人来说,C-y将会在当前光标位置将该行插入到缓冲区中。 - Eric Schoonover

0

你可以使用lispy,然后按下n键运行lispy-new-copy来复制。

(myotherfunc lst)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接