2

我在 Ubuntu 20.04 上使用 apt 安装的 Emacs 中使用 CC 模式。它格式化代码如下:

#include <vector>
int main() {
  auto f1 = [](int a) {
              return std::vector<int>({a});
            };
  auto f2 = [](int a) -> std::vector<int> {
                                           return std::vector<int>({a});
  };
}

在我看来,格式f1是可以接受的,但f2不是。有没有办法让它f2像这样格式化f1?或者,更优选地,如下所示,这是通过安装在 Ubuntu 16.04 上的 CC 模式实现的。

#include <vector>
int main() {
  auto f1 = [](int a) {
    return std::vector<int>({a});
  };
  auto f2 = [](int a) -> std::vector<int> {
    return std::vector<int>({a});
  };
}

我目前的解决方法如下,但并不理想:

  using vector_t = std::vector<int>;
  auto f2wa = [](int a) -> vector_t {
                return vector_t({a});
              };
4

1 回答 1

1

如果你google-set-c-style.el从 melpa 使用你会得到你喜欢的格式,

#include <vector>
int main() {
  auto f1 = [](int a) {
    return std::vector<int>({a});
  };
  auto f2 = [](int a) -> std::vector<int> {
    return std::vector<int>({a});
  };
}

一般来说,使用 cc-modes,您可以c-guess尝试检查和设置样式规则,直到找到您想要的。

于 2021-01-05T06:33:35.780 回答