Vim 正在查找此代码段的正确选项

Vim 正在查找此代码段的正确选项,vim,indentation,Vim,Indentation,我可以设置哪些选项以使下面的块缩进,如图所示 f(int *p) : a(p) , b(0) { std::cerr << blah << foo << std::endl; } f(int*p) :a(p) ,b(0) { std::cerr看起来您只需要一个附加选项。我通过将p0添加到cinoptions,获得了您期望的结果: 设置cino=i0,+2,p0 这将调整K&R样式缩进: 那么i0,+2,t0呢?(tN表示“函数返回类型声明”)

我可以设置哪些选项以使下面的块缩进,如图所示

f(int *p) 
: a(p)
, b(0)
{
  std::cerr << blah
    << foo << std::endl;
}
f(int*p)
:a(p)
,b(0)
{

std::cerr看起来您只需要一个附加选项。我通过将
p0
添加到
cinoptions
,获得了您期望的结果:

设置cino=i0,+2,p0

这将调整K&R样式缩进:


那么
i0,+2,t0
呢?(
tN
表示“函数返回类型声明”)


这对我来说很有效,但是,我尝试的vims(7.0和7.3)使用
i0,+2

做了两件不同的事情,与您的不一样。我使用
set cino=i0,+2
set cino=i0,+2,p0
获得了相同的输出。这可能与其他一些选项有关吗?我正在使用
set cindent
set expandtab
,以及
上的文件类型缩进没有看到您报告中的行为。当我使用您的选项时(无p0)我在后两行上得到一个缩进,当我添加p0时,它会按照要求运行。您可以执行
:mkvimrc
,确认
cinoption
值正确,然后将您得到的设置粘贴到中吗?我已经创建了两个粘贴箱。第一个是带有
:mkvimrc
:。第二个是手动缩进文件用
set cino=i0,+2,p0:Andy,这对我也很有用。最后用
g0,+2,(2,i0,t0,:0
f(int* p) 
  : a(p)
  , b(0)
  {
    std::cerr << blah
      << foo << std::endl;
  }
pN    Parameter declarations for K&R-style function declarations will
      be indented N characters from the margin.  (default
      'shiftwidth').

    cino=               cino=p0          cino=p2s
      func(a, b)          func(a, b)       func(a, b)
          int a;          int a;                   int a;
          char b;         char b;                  char b;