2011-03-24 64 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