正确设置标签缩进

时间:2011-01-18 07:39:20

标签: emacs

使用带有C源代码的Emacs,我想按Tab键插入制表符,并让它显示一个制表符,宽度为2个空格。所以这就是我放在〜/ .emacs中的内容:

(setq c-default-style "linux")
(setq-default c-basic-offset 2
tab-width 2)

但是它不将选项卡计为一列,但在这种情况下为2,如果我想跳转到gcc在错误消息中指定的位置,则会导致问题。

int main()  
{  
    if(1)  
    {  
        if(2)  
        {  
            error  
        }  
    }  
}

出现此错误:

test.c:7:5 error: `error` undeclared (first use in this function)

因此,当我选择错误时,它会跳转到错误的位置。有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

从不具有ASCII HORIZONTAL TAB(HT)字符(字节值0x9)代表“移动到下一个8列边界”之外的任何内容。搞乱这个默认值会搞乱各种各样的unix程序,并且通常会导致问题。

如果您想要2空间缩进那么没问题,当您点击TAB 时,您希望它发生。 Emacs将HT字符的概念与压痕的概念分开,每个都可以单独控制。

开始
(setq c-basic-offset 2)

.emacs文件中。现在,每当您点击C程序中的TAB键时,emacs将自动重新识别该行。您可以使用M-iC-q TAB插入真正的HT字符。

如果这仍然不是你想要的,你可以做更多的自定义,但这是正确的开始方式。

答案 1 :(得分:0)

您是否尝试将c-syntactic-indentation设为nil?

答案 2 :(得分:0)

您是否尝试过使用-ftabstop=2调用gcc?