1

我想以类似于"bsd"样式的方式在 Emacs 中缩进我的 C++ 代码,但有一个区别:访问级别修饰符必须属于它们自己的缩进级别。(由于我不使用switchor 标签/ goto,因此通常可以说以冒号结尾的行必须属于它们自己的缩进级别。)这是一个例子:

 class somewhat
 {
   private:
     int whatever;

   public:
     void somehow()
     {
       if (something_about(whatever))
         like_this();
       else
       {
         std::cerr << "It is not true that something_about("
                   << whatever << ").";
         like_that();
       }
     }
 };

如何配置 my~/.emacs以反映此偏好?这是我当前的配置:

; No tabs at all.
(setq indent-tabs-width nil)
(setq tab-width         2)

; [C-like languages]-specific configuration.
(setq c-basic-offset  2)
(setq c-default-style "bsd")

; Configuration for other languages.
; ...
4

1 回答 1

3

您需要access-label修改c-offsets-alist. 我建议您自己创建一个新的“样式”c-offsets-alist并添加如下一行:

(access-label . +)

如果你想从bsd风格派生,你可以这样做:

(c-add-style "modified-bsd"
'("bsd"
  (c-basic-offset . 2)
  ;;...MORE MODS...
  (c-offsets-alist
   (access-label . +))))`

另外,我如何找到要修改的偏移量?转到相关代码行并按 C-cC-s显示CC-mode的语法分析。也一定要检查帮助c-offsets-alist

于 2013-01-06T12:20:23.467 回答