2013-07-04 62 views
0

我在Fedora 19 64位上运行Emacs 24.2-18。我在我的.emacs文件中设置了C默认样式为“linux”,默认的制表符宽度为4,使用制表符的缩进,默认的C偏移量为制表符宽度,Perl偏移量为制表符宽度。但是每当我启动Emacs时,标签宽度和C偏移量都是2.样式被列为“linux”,但是当我将Emacs中的样式设置为“linux”时,它会更改标签宽度和C偏移量。所以最初的默认样式没有被正确加载,我不知道发生了什么。这里是我的一些文件。该.emacshttp://paste.fedoraproject.org/23068/13729669/,该~/.emacs.d目录中的内容是http://paste.fedoraproject.org/23070/67043137(smartparens和归档是目录),并通过我的Fedora的软件管理有关的Emacs安装的软件有:Emacs默认样式(制表符宽度,偏移量)被覆盖

  • emacs.x86_64 1:24.2-18。 FC19 @fedora
  • 的Emacs自动complete.noarch 1.3.1-5.fc19 @fedora
  • 的Emacs自动完成,el.noarch 1.3.1-5.fc19 @fedora
  • 的emacs常见。 x86_64 1:24.2-18.fc19 @fedora
  • 周的emacs-filesystem.noarch 1:24.2-19.fc18 @更新/ 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偏移量像这样被覆盖?我不知道发生了什么事。

+0

尝试[this](http://stackoverflow.com/a/46174/1309352) –

+0

我确实希望它使用制表符。这只是标签宽度和偏移量不加载正确的问题。 – Sammidysam

回答

1

罪魁祸首是其在.emacs文件中使用自动缩进模式。自动缩进模式将在主模式下强制偏移,默认值为2,这是您未自定义的。正因为如此,它在你的所有文件上强制偏移2。

1

尝试定义你自己的风格,基于“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") 
+0

我将'.emacs'改为http://paste.fedoraproject.org/23118/72977155/(注意行49-57),现在标签宽度正确4,但是当我去时,c-basic-offset仍然是2如[此处]显示的C文件(http://s11.postimg.org/tr5nfibz7/emacs.png)。 我将'.emacs'改为http://paste.fedoraproject.org/23119/72977435,然后关闭c-basic-offset直到我手动将样式设置为我的样式,然后工作正常。这可能是程序中的错误吗? – Sammidysam

+0

使用钩子,我已经与C文件一起使用。但是,在Vala文件中使用vala模式时,它不起作用,除非我在Emacs中设置变量。 – Sammidysam