Стиль Emacs по умолчанию (ширина табуляции, смещение) переопределяется

Я использую Emacs 24.2-18 на 64-битной версии Fedora 19. Я установил в своем файле .emacs для стиля C по умолчанию значение «linux», ширину вкладки по умолчанию — 4, отступ для использования вкладок, смещение C по умолчанию — ширину вкладки, а смещение Perl — вкладку. ширина. Но всякий раз, когда я запускаю Emacs, ширина табуляции и смещение C равны 2. Стиль указан как «linux», но когда я устанавливаю стиль в Emacs на «linux», он меняет ширину табуляции и смещение C. Таким образом, первоначальный стиль по умолчанию загружается неправильно, и я понятия не имею, что происходит. Вот несколько моих файлов. .emacs — это http://paste.fedoraproject.org/23068/13729669/, содержимое каталога ~/.emacs.d находятся http://paste.fedoraproject.org/23070/67043137 (smartparens и архив — это каталоги), а мое установленное программное обеспечение, относящееся к Emacs через диспетчер программного обеспечения Fedora:

  • emacs.x86_64 1:24.2-18.fc19 @fedora
  • emacs-auto-complete.noarch 1.3.1-5.fc19 @fedora
  • emacs-auto-complete-el.noarch 1.3.1-5.fc19 @fedora
  • emacs-common.x86_64 1:24.2-18.fc19 @fedora
  • emacs-filesystem.noarch 1:24.2-19.fc18 @updates/18
  • emacs-vala.noarch 0.20.1-1.fc19 @fedora
  • emacs-vala-el.noarch 0.20.1-1.fc19 @fedora

Следует отметить, что emacs-filesystem.noarch является пакетом Fedora 18, а не пакетом Fedora 19. Есть ли причина, по которой моя ширина табуляции и смещение C переопределяются таким образом? Я понятия не имею, что происходит.


person Sammidysam    schedule 04.07.2013    source источник
comment
попробуйте это   -  person Bleeding Fingers    schedule 05.07.2013
comment
Я хочу, чтобы он использовал вкладки. Проблема заключается только в том, что ширина табуляции и смещение не загружаются правильно.   -  person Sammidysam    schedule 05.07.2013


Ответы (2)


Попробуйте определить свой собственный стиль на основе «linux» и переопределить смещение:

(setq-default tab-width 4
              indent-tabs-mode t)

(c-add-style "my-style"
             `("linux"
               (c-basic-offset . ,tab-width)))

(setq c-default-style "my-style")
person François Févotte    schedule 04.07.2013
comment
Я изменил свой .emacs на paste.fedoraproject.org/23118/72977155 (примечание, строки 49- 57), и теперь ширина вкладки правильно равна 4, но c-basic-offset по-прежнему равна 2, когда я перехожу к файлу C, как показано здесь. Я изменил .emacs на paste.fedoraproject.org/23119/72977435, а затем c-basic- смещение отключено, пока я вручную не установлю стиль в свой стиль, после чего он работает нормально. Может ли это быть ошибкой в ​​программе? - person Sammidysam; 05.07.2013
comment
Используя хук, я получил это с файлами C. Однако это не работает с файлами in Vala с vala-mode, если я не устанавливаю переменную внутри Emacs. - person Sammidysam; 05.07.2013

Виновником является режим автоматического отступа, который используется в файле .emacs. Auto-indent-mode заставит смещение основного режима, и значение по умолчанию равно 2, которое вы не настраивали. Из-за этого он принудительно установил смещение 2 для всех ваших файлов.

person Sammidysam    schedule 08.07.2013