我尝试使用(/ 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
不能以这种方式工作?
答案 0 :(得分:1)
您需要在结束括号之后准确定位点。 然后它应该工作。
我再次检查过,故障是重新定义的js-mode 正则表达式文字的语法表。
以下是修复:
(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
重新绑定它。