Правильная настройка отступов табуляции - PullRequest
2 голосов
/ 18 января 2011

Используя Emacs с исходным кодом C, я хочу нажать клавишу табуляции, чтобы вставить символ табуляции и сделать так, чтобы табуляция была шириной в 2 пробела. Вот что я вставил в ~ / .emacs:

(setq c-default-style "linux")<br> (setq-default c-basic-offset 2<br> 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 ]

1 голос
/ 06 февраля 2011

Никогда не имеет символа ASCII HORIZONTAL TAB (HT) (значение байта 0x9), что означает «перейти к следующей границе 8 столбцов». Из-за неправильного использования этого значения по умолчанию все программы Unix портятся и обычно вызывают проблемы.

Если вам нужен 2-пробельный отступ , это прекрасно, и также хорошо, что вы хотите, чтобы это произошло при нажатии клавиши TAB . Emacs отделяет понятие HT-символа от отступа, и каждый из них может управляться отдельно.

Начните с

(setq c-basic-offset 2)

в вашем файле .emacs. Теперь, когда вы нажимаете клавишу TAB в программе на C, emacs автоматически переименует эту строку соответствующим образом. Вы можете использовать M-i или C-q TAB для вставки реального символа HT.

Вы можете сделать гораздо больше настроек, если это не совсем то, что вам нужно, но это правильный способ начать.

0 голосов
/ 20 января 2011

Вы пытались вызвать gcc с -ftabstop=2?

0 голосов
/ 19 января 2011

Вы пробовали установить c-syntactic-indentation в ноль?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...