2012-12-11 2 views
12

Можно создать дубликат:
Emacs - override indentationПодавить C++ имен отступы в Emacs

То, что я хочу, чтобы Emacs не выравнивал код внутри пространства имен

namespace a_namespace{ 

// no indentation 
int namespace_global_variable; 


// no indentation 
class Class { 
    // comment 
    Class(); 
    //... 
}; 

// and so on 


} 

Когда я попытался изменить переменную innamespace или использовать C-c C-o для изменения inden (на самом деле последний убил весь отступ внутри функций).

Моя конфигурация отступы выглядит следующим образом (копируется из конфигурации EMACS Google):

(c-offsets-alist . ((arglist-intro vista-c-lineup-expression-plus-4) 
        (func-decl-cont . ++) 
        (member-init-intro . +) 
        (inher-intro . ++) 
        (comment-intro . 0) 
        (arglist-close . c-lineup-arglist) 
        (topmost-intro . 0) 
        (block-open . 0) 
        (inline-open . 0) 
        (substatement-open . 0) 
        (statement-cont 
        . 
        (,(when (fboundp 'c-no-indent-after-java-annotations) 
         'c-no-indent-after-java-annotations) 
         ,(when (fboundp 'c-lineup-assignments) 
         'c-lineup-assignments) 
         ++)) 
        (label . /) 
        (case-label . +) 
        (statement-case-open . +) 
        (statement-case-intro . +) ; case w/o { 
        (access-label . /) 
        (innamespace . -)))) 
+0

Похоже на [здесь] (http://stackoverflow.com/questions/2619853/emacs-override-indentation). – Edityouprofile

+0

Это решение не работает для меня (возможно, ошибка пользователя). – Dave

+0

Это не строгий дубликат, потому что в другом вопросе задается _some_ отступы, если это запрашивает _none_. Возможно, что решение для _none_ было бы лучше, чем решение для «some с количеством, установленным на ноль». – GreenAsJade

ответ

11
(defconst my-cc-style 
    '("cc-mode" 
    (c-offsets-alist . ((innamespace . [0]))))) 

(c-add-style "my-cc-mode" my-cc-style) 

От Jason Zhang «s answer. Работает здесь.

+0

Простое замену '-' на' [0] 'в моем существующем' c-offsets-alist' не решает проблему. – Dave

+0

Теперь это сработало - я не уверен на 100% того, что требуется, чтобы emacs перечитал его файл инициализации. – Dave

+3

Как-то это не сработало для меня, даже после перезапуска Emacs. '(c-set-offset 'innamespace 0)' работал (взято из http://brrian.tumblr.com/post/9018043954/emacs-fu-dont-indent-inside-of-c-namespaces) – Tobias

Смежные вопросы