关于链接在Emacs的C/C++模式下,将#if 0...#endif块中的代码面改为注释面,请参考以下内容。
我尝试了这段代码,但它似乎没有起作用。我的Emacs版本是Linux上的GNU Emacs 21.3.1。
请问我哪里出了问题?
谢谢。
我尝试了这段代码,但它似乎没有起作用。我的Emacs版本是Linux上的GNU Emacs 21.3.1。
请问我哪里出了问题?
谢谢。
cpp-highlight-mode
可以在无需用户交互的情况下运行。这是我设置的方法:
(defun cpp-highlight-if-0/1 ()
"Modify the face of text in between #if 0 ... #endif."
(interactive)
(setq cpp-known-face '(background-color . "dim gray"))
(setq cpp-unknown-face 'default)
(setq cpp-face-type 'dark)
(setq cpp-known-writable 't)
(setq cpp-unknown-writable 't)
(setq cpp-edit-list
'((#("1" 0 1
(fontified nil))
nil
(background-color . "dim gray")
both nil)
(#("0" 0 1
(fontified nil))
(background-color . "dim gray")
nil
both nil)))
(cpp-highlight-buffer t))
(defun jpk/c-mode-hook ()
(cpp-highlight-if-0/1)
(add-hook 'after-save-hook 'cpp-highlight-if-0/1 'append 'local)
)
(add-hook 'c-mode-common-hook 'jpk/c-mode-hook)
cpp-highlight-mode
查看cpp-edit-list
的方式。我按照交互式的方式设置了所需内容,然后通过C-h v
查看生成的cpp-edit-list
。cpp-edit-list
的每个子列表的第一个元素是用来做什么的?文档只描述它是一个字符串,但你似乎在更多方面使用它(例如,#("1" 0 1 (fontified nil))
)。 - Michaël#("1" 0 1 (fontified nil))
。尽管它确实可以工作,但我对此感到困惑! - Michaëlbuffer-substring
命令。就像我说的那样,这可能只是复制粘贴,如果它只是一个简单的字符串,那么可能会更好。 - jpkotta