https://stackoverflow.com/a/663636/391104
(defun my-c++-mode-hook ()
(setq c-basic-offset 4)
(c-set-offset 'substatement-open 0))
(add-hook 'c++-mode-hook 'my-c++-mode-hook)
根据我的调查,我只需要将上面的代码添加到我的.emacs中,然后它就会神奇地工作。
Q1> defun my-c++-mode-hook ()
是什么意思? lisp中的函数定义?
Q2>以下行的用法是什么?我应该在哪里触发它,或者由emacs自动运行
(add-hook 'c++-mode-hook 'my-c++-mode-hook)
谢谢
答案 0 :(得分:5)
Q1:是的,这是一个函数定义(因此defun
)。第二个符号是名称,后缀为“-hook”,用于向人类表明它打算用作钩子。它可以(几乎)给出任意名称而不改变其行为。空()
表示该函数不带参数。其他一切都是功能的主体。
Q2:基本上,这会将前一个函数的指针添加到启动c++-mode
时调用的函数列表中。无论何时启动模式,Emacs都会查找模式挂钩,并运行其中的所有功能。函数定义和加号挂钩行都需要放在你的.emacs中,当你启动emacs时它们会自动运行。
为了包围elisp,强烈建议引入。它附带了emacs,可以从信息系统访问:C-h i
,然后查找Elisp简介。