6

我对 Emacs Lisp(或任何 Lisp,就此而言)一无所知。我想做一些看起来很简单的事情,但我没有在线指南。我想为.packet文件创建“packet-mode.el”。我想做以下事情:

  • 启用 C++ 模式
  • 创建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表现struct得像

packet foo {
  int bar;
}

struct以与代替.时相同的方式突出显示packet

4

1 回答 1

8

这是您需要放入的内容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.

于 2013-02-15T01:41:19.407 回答