这里的核心函数是 xgp-cfsi,它接受风格名作为参数,并设置自动换行的方式。 这样,在 bsd 风格中只有函数声明、单独的 if、while 和 for 的子句以及枚举 和初始化说明中需要手工按回车,其他情况中 Emacs 都会自动插入回车。然后我 在 c-mode-common-hook 中加入了 (c-toggle-hungry-state 1)、 (c-toggle-auto-newline 1),以及 (xgp-cfsi "bsd") 来将默认风格置为 bsd。 同时,如果需要输入其他风格的程序,Emacs 都会自动地进行排版。当然,我在 公司的开发组要求了一种我不喜欢的风格 (这也是我自己写这个函数的原因),它 是这样设置的: '(c-hanging-braces-alist (quote ((defun-open before after) (defun-close before after) (brace-list-open after) (brace-list-close) (brace-entry-open before after) (statement-cont before after) (substatement-open before after) (block-close after) (extern-lang-open before after) (namespace-open before after) (module-open before after) (composition-open before after) (inexpr-class-open before after) (inexpr-class-close before after) (class-open before after) (class-close)))) '(c-offsets-alist (quote ((block-open . 0) (block-close . 0) (statement-block-intro . +) (substatement . +) (substatement-open . 0) (substatement-label . 0) (label . 0) (case-label . 0) (do-while-closure . 0) (else-clause . 0) (catch-clause . 0) (case-label . 0) (access-label . -) (namespace-open . 0) (class-open . 0) (class-close . 0) (innamespace . 0)))) 复制代码
使用道具 举报
本版积分规则 发表回复 回帖后跳转到最后一页