Emacs で Emacs Lisp 式を評価し、その結果に置き換えることはできますか? 質問する

Emacs で Emacs Lisp 式を評価し、その結果に置き換えることはできますか? 質問する

たとえば、次のテキストがあるとします。

Sum of items is (+ 1 2 3)

行の末尾に移動し、式を評価して結果に置き換えて、次のようにします。

Sum of items is 6

ベストアンサー1

カーソルが行末にある場合、C-u C-x C-e前の括弧で囲まれた式の値がバッファに挿入されます。これを実行した後、手動で元の式をバックアップして削除することもできます。それが面倒な場合は、前の式を評価してその値に置き換えるコマンドを次に示します。

  (defun replace-last-sexp ()
    (interactive)
    (let ((value (eval (preceding-sexp))))
      (kill-sexp -1)
      (insert (format "%S" value))))

おすすめ記事