2011-03-24 80 views
8

可以设置什么cinoptions来获取如下所示的缩进块?寻找这段代码的正确cinoptions

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

我得到的最接近是:

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

这几乎是我想要的,只是:之后,一切都缩进:)
对于这一点,我用:set cino=i0,+2

回答

1

如何i0,+2,t0? (tN用于“函数返回类型声明”)。

这对我很有用,但是,我试过的vims(7.0和7.3)做了两件不同的事情,既不同于你的,也有i0,+2

+1

对我来说也是如此,Andy。最后使用'g0,+ 2,(2,i0,t0,:0'。 – rturrado 2011-04-01 08:28:42

1

看起来你只需要一个额外的选项。

集西诺= I0,+ 2,P0

此调整K个& [R风格缩进:我加入p0cinoptions得到你所期望的结果。 From the docs

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; 
+0

我用'set cino = i0,+ 2'和'set cino = i0,+ 2,p0'得到相同的输出。这可能与其他一些选择有关吗?我正在使用'set cindent','set expandtab'和'filetype indent on'。 – rturrado 2011-03-29 13:48:56

+0

@rturrado:我没有看到你的报告的行为。当我使用你的选项(没有p0)时,我在第二行中得到一个缩进,并且当我添加p0时,它按照要求运行。你可以做':mkvimrc',确认'cinoption'的值是否正确,然后将你得到的设置粘贴到[pastebin](http://pastebin.com/)? – 2011-03-30 01:40:27

+0

我创建了几个pastebins。第一个,使用':mkvimrc':http://pastebin.com/FMd3g6F8。其次,手动缩进文件并使用'set cino = i0,+ 2,p0':http://pastebin.com/iRLQbzuc – rturrado 2011-03-30 08:42:28