gpt4 book ai didi

emacs - 如何在elisp中查找语法错误

转载 作者:行者123 更新时间:2023-12-03 19:08:52 24 4
gpt4 key购买 nike

如果这是重复的请删除。
我只是在编辑我的 .emacs 文件,然后我完成了更改。一世
重新启动emacs。但是它再次出现它声称配置
文件有一些错误。我应该从“--debug-init”开始
我也做过。但它没有帮助我解决或找到语法错​​误。
那么有没有办法找到有语法错误的行。或者甚至更好,如果
会有像 (e)lisp lint 之类的东西,比如 xml、json、js
等等。提前致谢

编辑

设法获得转储:

Debugger entered--Lisp error: (void-variable whitespace-mode)
redisplay_internal\ \(C\ function\)()
delete-process(#<process server-client-test>)
Someunicodefoo" [("server") server-use-tcp server-auth-dir server-socket-dir generate-new-buffer " *temp*" funcall make-byte-code 0 "Someunicodefoo" vconcat vector [buffer-name kill-buffer] 2 "\n\n(fn)" insert-file-contents-literally expand-file-name looking-at "127\\.0\\.0\\.1:[0-9]+ \\([0-9]+\\)" comm process-attributes string-to-number match-string 1 t :other delete-process make-network-process :name "server-client-test" :family local :server nil :noquery :service] 14 "\n\n(fn)"])
server-running-p("server")
byte-code("Someunicodefoo" [load-file-name buffer-file-name recentf-menu-before user-emacs-directory recentf-save-file server-name add-to-list load-path file-name-directory "../packages" tool-bar-mode 0 load "ergoemacs-keybindings/ergoemacs-mode" ergoemacs-mode 1 "init_load_packages" "init_version" "init_functions" "init_settings" "init_aliases" "init_abbrevs-lisp-mode" "init_keybinding" "init_mouse" "init_clean_menus" require recentf "Close" ".recentf" recentf-mode server server-running-p t server-start] 4)
load("/home/dirk/.emacs.d/ergoemacs_1.9.3.1/site-lisp/../ergoemacs/init")
eval-buffer(#<buffer *load*-842275> nil "/home/dirk/.emacs.d/ergoemacs_1.9.3.1/site-lisp/site-start.el" nil t) ; Reading at buffer position 1432
load-with-code-conversion("/home/dirk/.emacs.d/ergoemacs_1.9.3.1/site-lisp/site-start.el" "/home/dirk/.emacs.d/ergoemacs_1.9.3.1/site-lisp/site-start.el" nil nil)
load("/home/dirk/.emacs.d/ergoemacs_1.9.3.1/site-lisp/site-start.el" nil nil t)
load-file("~/.emacs.d/ergoemacs_1.9.3.1/site-lisp/site-start.el")
eval-buffer(#<buffer *load*> nil "/home/dirk/.emacs" nil t) ; Reading at buffer position 2883
load-with-code-conversion("/home/dirk/.emacs" "/home/dirk/.emacs" t t)
load("~/.emacs" t t)
command-line()
normal-top-level()

最佳答案

一种方法是打开文件并标记它的前半部分并应用 eval-region .如果报告错误,请标记一半并重复。如果未报告错误,请将其应用于另一半。

通过这种方式,您可以缩小问题的范围,一旦找到它,您就有希望找出问题所在。

我用来查找不正确括号的另一种技术是分别在文件的开头和结尾添加一个额外的括号,并分别从开头和结尾运行 C-M-f 和 C-M-b。如果括号不正确,它们将匹配新添加的括号,并且点将移动到不正确的括号中。

编辑:您可以使用 M-x check-parens 来检查不匹配的括号。

关于emacs - 如何在elisp中查找语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23647479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com