使用带有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)
因此,当我选择错误时,它会跳转到错误的位置。有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
从不具有ASCII HORIZONTAL TAB(HT)字符(字节值0x9)代表“移动到下一个8列边界”之外的任何内容。搞乱这个默认值会搞乱各种各样的unix程序,并且通常会导致问题。
如果您想要2空间缩进那么没问题,当您点击TAB 键时,您希望它发生。 Emacs将HT字符的概念与压痕的概念分开,每个都可以单独控制。
从
开始(setq c-basic-offset 2)
在.emacs
文件中。现在,每当您点击C程序中的TAB键时,emacs将自动重新识别该行。您可以使用M-i
或C-q TAB
插入真正的HT字符。
如果这仍然不是你想要的,你可以做更多的自定义,但这是正确的开始方式。
答案 1 :(得分:0)
您是否尝试将c-syntactic-indentation
设为nil?
答案 2 :(得分:0)
您是否尝试过使用-ftabstop=2
调用gcc?