我对Emacs Lisp(或任何Lisp,就此而言)一无所知。我想做一些看起来非常简单的事情,但我对在线指南没有运气。我想创建" packet-mode.el"对于.packet
个文件。我想做以下事情:
packet
成为关键字,同时保持C ++模式的其余部分不变(define-derived-mode packet-mode fundamental-mode
(font-lock-add-keywords 'c++-mode `(("packet" . font-lock-keyword-face)))
(c++-mode))
(add-to-list 'auto-mode-alist '("\\.packet\\'" . packet-mode)
(provide 'packet-mode)
我也尝试在数据包模式下切换语句的顺序,但随后C ++突出显示中断。
我希望packet
在{/ p>的意义上表现得像struct
packet foo {
int bar;
}
的突出显示方式与使用struct
代替packet
时的方式相同。
答案 0 :(得分:7)
以下是您需要加入packet-mode.el
的内容:
(defvar packet-mode-font-lock-keywords
'(("\\<packet\\>" . font-lock-keyword-face)))
(define-derived-mode packet-mode c++-mode "Packet"
"A major mode to edit GNU ld script files."
(font-lock-add-keywords nil packet-mode-font-lock-keywords))
(add-to-list 'auto-mode-alist '("\\.packet\\'" . packet-mode))
(provide 'packet-mode)
将packet-mode.el
放入load-path
的目录中
(可选)字节编译。
现在,将(require 'packet-mode)
添加到您的.emacs.el
。