例如,如果我有文字:
Sum of items is (+ 1 2 3)
Run Code Online (Sandbox Code Playgroud)
我想移动到行的末尾,计算表达式并将其替换为结果,以便它显示为:
Sum of items is 6
Run Code Online (Sandbox Code Playgroud)
Sea*_*ean 40
将光标放在行的末尾,C-u C-x C-e将前面带括号的表达式的值插入缓冲区.您可以这样做,然后手动备份并删除原始表达式.如果这工作太多,这里有一个命令来评估前面的表达式并用它的值替换它:
(defun replace-last-sexp ()
(interactive)
(let ((value (eval (preceding-sexp))))
(kill-sexp -1)
(insert (format "%S" value))))
Run Code Online (Sandbox Code Playgroud)
当我在Google搜索结果中遇到一个解决方案时,我正在寻找解决方案.
(defun fc-eval-and-replace ()
"Replace the preceding sexp with its value."
(interactive)
(backward-kill-sexp)
(prin1 (eval (read (current-kill 0)))
(current-buffer)))
Run Code Online (Sandbox Code Playgroud)
http://emacs.wordpress.com/2007/01/17/eval-and-replace-anywhere/