【发布时间】:2011-06-07 03:59:38
【问题描述】:
有没有办法在 Slime/Emacs 中复制/拉出整个表单?
例如,如果我有以下功能:
(myfunc (lst)
(myotherfunc lst))
我想复制/复制:
(myotherfunc lst)
当我的光标位于该表单的左括号或右括号时发出键盘快捷键(在 Slime/Emacs 进行括号匹配的位置)。
【问题讨论】:
有没有办法在 Slime/Emacs 中复制/拉出整个表单?
例如,如果我有以下功能:
(myfunc (lst)
(myotherfunc lst))
我想复制/复制:
(myotherfunc lst)
当我的光标位于该表单的左括号或右括号时发出键盘快捷键(在 Slime/Emacs 进行括号匹配的位置)。
【问题讨论】:
C-M-SPC (mark-sexp) 放置标记 在 sexp 的末尾,然后复制/复制
CMf (forward-sexp) 和 CMb (backward-sexp) 对于在平衡表达式上向前和向后移动很有用
李>【讨论】:
在我的 Emacs 中,函数 kill-sexp 绑定到 C-M-k。也就是说,假设该点就在 平衡表达式 的开始分隔符之前,请同时按 Control、Meta 和 k。
同样的命令适用于各种其他非 Lisp 模式,例如在 C 风格模式中杀死大括号分隔的块,尽管 kill-sexp 命令可能不会绑定到相同的键。
【讨论】:
默认情况下,emacs 次要模式ParEdit 在正常杀死“C-k”时执行此操作。我肯定会向任何 emacs+slime 用户推荐它。
【讨论】:
您可以使用lispy,然后您可以按运行lispy-new-copy的n进行复制
(myotherfunc lst)
【讨论】: