gpt4 book ai didi

regex - emacs 主模式定义

转载 作者:行者123 更新时间:2023-12-02 04:12:46 25 4
gpt4 key购买 nike

我正在尝试编写一个非常基本的 emacs 主要模式来编辑汇编器源文件(针对特定的微 Controller )。我用过https://www.emacswiki.org/emacs-test/ModeTutorial作为起点。它有效,但我想改变两件事,但找不到解决方案。

是的,我渴望随着时间的推移对 eLisp 有更彻底的了解,但我也尝试快速破解工作模式定义,因为我现在需要它(没有真正理解其中的复杂性 - 我知道,RTFM ...)。

无论如何,我希望得到两个问题的答案:

1)虽然语法突出显示有效,但我不认为它不区分大小写。我尝试将 (setq font-lock-keywords-case-fold-search t) 添加到下面的函数中,但似乎没有达到预期的效果。

(defun xasm-mode ()
(interactive)
(kill-all-local-variables)
(use-local-map xasm-mode-map)
(set-syntax-table xasm-mode-syntax-table)
;; set up font-lock
(set (make-local-variable 'font-lock-defaults) '(xasm-font-lock-keywords))
(setq font-lock-keywords-case-fold-search t)
(setq major-mode 'xasm-mode)
(setq mode-name "XASM")
(run-hooks 'xasm-mode-hook))

2)第二个问题肯定证明了我的无知......基本上,在具有以下结构的表达式中,我想用变量中的值替换“regexp”文字(有效)(这里:x,x(正确)由regexp-opt计算)...但我不知道如何在这里插入x的:-(

(setq x 'xyz)
(defconst v2
(list
'( "regexp" . foo)
))

感谢您的提示。

最佳答案

使用C-h v font-lock-defaults RET检查文档:

... Defaults should be of the form:

(KEYWORDS [KEYWORDS-ONLY [CASE-FOLD [SYNTAX-ALIST ...]]]) ...

这告诉您可以在那里设置“大小写折叠”行为:

(set (make-local-variable 'font-lock-defaults)
'(xasm-font-lock-keywords nil t))

另外,帮自己一个忙,使用define-衍生模式(并更新您发现的指向 defun+interactive+setqmode-name+... 的文档,以便它引用 定义派生模式以及)。

关于regex - emacs 主模式定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755532/

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