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