有没有办法在Slime / Emacs中复制/抽取整个表单?
例如,如果我有以下功能:
(myfunc (lst)
(myotherfunc lst))
我想要猛拉/复制:
(myotherfunc lst)
当我的光标位于该窗体的左括号或右括号时(在Slime / Emacs进行括号匹配时)发出键盘快捷键。
答案 0 :(得分:13)
C-M-SPC (mark-sexp)放标 在性别结束时,然后复制/猛拉
CMf (forward-sexp)和 CMb (back-sexp)对于在平衡表达式上前后移动非常有用
答案 1 :(得分:9)
在我的Emacs中,函数kill-sexp
绑定到 C-M-k 。也就是说,假设该点位于平衡表达式的开始分隔符之前,请同时按Control,Meta和k。
这个命令在各种其他非Lisp模式下工作,例如在C风格模式下杀死大括号分隔的块,尽管kill-sexp
命令可能没有绑定到相同的键。
答案 2 :(得分:3)
默认情况下,emacs次要模式ParEdit会在正常杀死'C-k'上执行此操作。我当然会推荐给任何emacs +史莱姆用户。
答案 3 :(得分:0)
您可以使用lispy然后按 n 运行lispy-new-copy
来复制
(myotherfunc lst)