Как я могу кодировать в C ++ с одинаковым стилем отступов как в Vi, так и в Emacs?
-
07-07-2019 - |
Вопрос
Как два разработчика могут работать на одной и той же базе кода C ++, чтобы они могли работать прозрачно? Существует ли какой-либо общий стиль отступа для кода C ++, такой, что после его создания разработчики могут создавать код с одинаковым уровнем отступа. Р>
Я обнаружил, что Emacs очень агрессивен в отношении отступов, он пытается пробиться, а Ви довольно простителен. Но стили emacs (смешанные табуляции и пробелы) не так уж дружественны для Vim. Р>
Решение
Заставьте 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)
Другие советы
То, что я делал, когда руководил небольшой командой, я использовал ловушку регистрации, которая называлась программой BSD «indent», которая вынуждала код каждого в один и тот же стиль отступов. См. Применение стиля кодирования