【发布时间】:2011-09-02 16:11:12
【问题描述】:
我现在正在为 Emacs 使用 python.el 版本 0.23.1。语法高亮似乎有点不对劲——任何包含下划线后跟关键字的变量名都会导致关键字被高亮。例如,“foo_list”将导致“list”被突出显示。
我自己对 Emacs-Lisp 的理解比任何事情都重要(这没什么大不了的)我该如何解决这个问题。这是我认为相关代码在“python.el”第 312-318 行中的位置。我怀疑问题出在“symbol-start”的定义上,但我不知道这个名字指的是什么。
(defvar python-font-lock-keywords
;; Keywords
`(,(rx symbol-start
(or "and" "del" "from" "not" "while" "as" "elif" "global" "or" "with"
"assert" "else" "if" "pass" "yield" "break" "except" "import"
"print" "class" "exec" "in" "raise" "continue" "finally" "is"
"return" "def" "for" "lambda" "try" "self")
symbol-end)
到目前为止,我在 Emacs-Lisp 中一直在努力解决的一件事是,我发现在这种情况下很难将名称追溯到它们的定义。
提前致谢!
【问题讨论】:
-
我不知道你的问题的答案,但对于定义这件事,我有几个建议。首先,打开 eldoc-mode,它会为您提供当前函数的参数列表。其次,使用 C-h v 或 C-h f(变量/函数)将点放在您不认识的事物之上。通常他们中的一个会找到一些东西,并且通常有文档或源链接。最后,symbol-start 是“rx”函数使用的一个特殊名称。
-
@Rupert Swarbrick:感谢 Rupert 的反馈。
标签: python emacs syntax-highlighting