将(/ 72 24)
插入javascript代码(在javascript模式下)时,我尝试使用C-x C-e
评估简单的扩展,但会引发错误
Debugger entered--Lisp error: (invalid-read-syntax "] in a list")
read(#<buffer SomeFile.js>)
preceding-sexp()
eval-last-sexp-1(nil)
eval-last-sexp(nil)
call-interactively(eval-last-sexp nil nil)
当我将其插入空缓冲区时,它可以工作。为什么
eval-last-sexp
不能以这种方式工作? 最佳答案
您需要将点精确定位在右括号之后。
然后它应该工作。
UPD /弄乱语法
我再次检查,错误是js模式重新定义了
其正则表达式文字的语法表。
解决方法是:
(defun eval-last-sexp-js (eval-last-sexp-arg-internal)
(interactive "P")
(save-excursion
(while (re-search-backward "(/" (line-beginning-position) t)
(remove-text-properties
(match-beginning 0)
(1+ (match-end 0))
'(syntax-table))))
(eval-last-sexp eval-last-sexp-arg-internal))
eval-last-sexp-js
将与eval-last-sexp
相同。如果需要,可以专门将其重新绑定到
js-mode
。关于javascript - 在JavaScript代码中评估Elisp表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18012184/