Slime / Emacsでフォーム全体をコピー/ヤンクする方法はありますか?
たとえば、次の関数がある場合:
(myfunc (lst)
(myotherfunc lst))
ヤンク/コピーしたい:
(myotherfunc lst)
カーソルがそのフォームの開き括弧または閉じ括弧にあるときに(Slime / Emacsが括弧の一致を行う時点で)キーボードショートカットを発行します。
C-M-SPC(mark-sexp) sexp の最後にマークを付けてから、コピー/ヤンクします。
C-M-f(forward-sexp) とC-M-b(backward-sexp) は、バランスの取れた表現を前後に移動するのに役立ちます
私の Emacs では、関数kill-sexp
は にバインドされていC-M-kます。つまり、ポイントがバランスの取れた式の開始区切り文字の直前にあると仮定すると、Control、Meta、および k を同時に押します。
この同じコマンドは、C スタイル モードで中括弧で区切られたブロックを強制終了するなど、他のさまざまな非 Lisp モードで機能しますが、kill-sexp
コマンドが同じキーにバインドされていない場合があります。
emacs マイナー モードParEditは、デフォルトで通常の kill 'Ck' でこれを行います。すべての emacs+slime ユーザーにお勧めします。
Lispyを使用 してから、nどの実行lispy-new-copy
をコピーするかを押すことができます
(myotherfunc lst)