如何在Vi和Emacs中使用相同的缩进样式在C ++中编码?

时间:2009-09-16 11:30:16

标签: c++ vim emacs vi indentation

两位开发人员如何在相同的C ++代码库上工作,以便他们可以透明地工作? C ++代码是否有任何常见的缩进样式,一旦建立,两个开发人员可以生成具有相同缩进级别的代码。

我发现Emacs对于缩进非常具有侵略性,它试图强迫它,而Vi非常宽容。但是emacs样式(混合标签和空格)对Vim来说并不是那么友好。

2 个答案:

答案 0 :(得分:11)

让Emacs做你想做的事。

来自我的〜/ .emacs文件:

(defun my-c-mode-common-hook ()
  (local-set-key "\C-h" 'backward-delete-char)
  ;; this will make sure spaces are used instead of tabs
  (setq tab-width 4 indent-tabs-mode nil)
  (setq indent-tabs-mode 'nil)
  (setq c-basic-offset 4)
  (c-set-offset 'substatement-open 0)
  (c-set-offset 'statement-case-open 0)
  (c-set-offset 'case-label 0)
  (c-set-offset 'brace-list-open 0)
)

(add-hook 'c-mode-hook 'my-c-mode-common-hook)
(add-hook 'c++-mode-hook 'my-c-mode-common-hook)
(add-hook 'perl-mode-hook 'my-c-mode-common-hook)
(add-hook 'cperl-mode-hook 'my-c-mode-common-hook)
(add-hook 'emacs-lisp-mode-hook 'my-c-mode-common-hook)
(add-hook 'nroff-mode-hook 'my-c-mode-common-hook)
(add-hook 'tcl-mode-hook 'my-c-mode-common-hook)
(add-hook 'makefile-mode-hook 'my-c-mode-common-hook)

答案 1 :(得分:7)

当我管理一个小团队时我做了什么,我使用了一个叫做BSD程序“缩进”的签到钩子,它强制每个人的代码都采用相同的缩进方式。见Enforcing a coding style