缩进基类和成员初始化列表的文档说(:help cino-i
):
iN Indent C++ base class declarations and constructor initializations, if they start in a new line (otherwise they are aligned at the right side of the ':'). (default 'shiftwidth').
我在i2s
和cinoptions
中使用shiftwidth=3
。当我缩进以下内容
class Foo : public Bar,
public Baz
{
};
我希望成为
class Foo : public Bar,
public Baz
{
};
但我明白了
class Foo : public Bar,
public Baz
{
};
类似地,当我缩进
Foo(int x, int y) : x_(x),
y_(y)
{
}
我想得到
Foo(int x, int y) : x_(x),
y_(y)
{
}
但我明白了
Foo(int x, int y) : x_(x),
y_(y)
{
}
我认为otherwise they are aligned at the right side of the ':'
这句话完全可以满足我的要求。看来我在误解那条线。
有什么方法可以得到所需的压痕?
平台:Windows 10
vim版本:8.1
我的设置:
autoindent fileformat=dos nolangremap scrolloff=5 tabstop=3 ttymouse=xterm
background=dark filetype=cpp laststatus=2 noshelltemp textmode visualbell
cindent helplang=en mousemodel=popup shiftwidth=3 textwidth=100 wildmenu
clipboard=unnamed hlsearch nrformats=bin,hex showcmd ttimeout nowrap
display=truncate incsearch ruler showmatch ttimeoutlen=100
expandtab langnoremap scroll=24 syntax=cpp ttyfast
backspace=indent,eol,start
cinkeys=0{,0},:,o,O,0#,!<Tab>
cinoptions=>1s,e0,n0,f0,{0,}0,^0,:s,=s,ps,ts,c3,i2s,+s,(0,u0,)20,*30,gs,hs,W2s
comments=sr:/*,mb:*,el:*/,://
fileencoding=utf-8
fileencodings=ucs-bom,utf-8,default,latin1
formatoptions=crql
keymodel=startsel,stopsel
omnifunc=ccomplete#Complete
selection=exclusive
selectmode=mouse,key
statusline=%f%h%m%r [%{&ff}] (%{strftime("%H:%M %d/%m/%Y",getftime(expand("%:p")))})%=%l,%c%V %P
suffixesadd=.h,.cc,.C,.cpp,.xml,.scm
whichwrap=b,s,<,>,[,]
wildmode=list:longest,longest:full