我最近搬到了 emacs,我习惯/喜欢突出显示的数字。我从这里获得的快速破解将以下内容放入我的.emacs
:
(add-hook 'after-change-major-mode-hook
'(lambda () (font-lock-add-keywords
nil
'(("\\([0-9]+\\)"
1 font-lock-warning-face prepend)))))
这提供了一个良好的开端,即突出显示任何数字。但是,我是一个完整的正则表达式初学者,理想情况下会喜欢以下行为:
- 如果它是浮点数的一部分,也要突出显示小数点,例如 12.34
- 如果它是单词的下一个/部分,请不要突出显示数字的任何部分。例如在这些情况下: foo11 ba11r 11spam,不应突出显示任何'1'
- 允许在两个数字整数内使用“e”以允许科学记数法(非必需,奖励学分)
不幸的是,这看起来很像一个我不愿意发布的“为我做这个”问题,但到目前为止我自己还没有取得任何体面的进展。
据我所知,发现[^a-zA-Z][0-9]+[^a-zA-Z]
除了字母以外的任何东西都可以匹配(例如等号),但这所做的只是在突出显示中包含相邻的符号。我不知道如何告诉它“如果两边都没有字母,则仅突出显示数字”。
当然,我无法想象正则表达式是复杂语法突出显示的方式,因此也欢迎任何好的数字突出显示在 emacs 想法中,
非常感谢任何帮助。(如果有任何区别,这是在 Python 编码时使用的。)