2011-01-11 40 views
6

有沒有辦法在Slime/Emacs中複製/抽取整個表單?在Slime中複製/抽出整個Lisp表單

舉例來說,如果我有以下功能:

(myfunc (lst) 
    (myotherfunc lst)) 

我想抽出/副本:

(myotherfunc lst) 

通過發出一個快捷鍵,當我的光標處於開啓或關閉該形式的括號(在Slime/Emacs進行括號匹配的位置)。

回答

9

在我的Emacs中,函數kill-sexp綁定到C-M-k。也就是說,假定該點位於平衡表達式的開始分隔符的前面,請同時按下Control,Meta和k。

該命令可以在其他各種非Lisp模式下工作,例如在C風格模式下殺死大括號分隔的塊,儘管kill-sexp命令可能未綁定到相同的密鑰。

3

默認情況下,emacs小模式ParEdit在正常殺死「C-k」時會這樣做。我肯定會推薦給任何emacs + slime用戶。

+0

此處還值得一提的是,對於任何不知道C-y的人,都會在當前光標位置將行插回緩衝區。 – 2012-03-25 04:48:34

0

您可以使用lispy,然後你可以按它運行lispy-new-copyň複製

(myotherfunc lst)