我的cinoptions如下:
:set cinoptions={1s,t0,f0s,g0,i0,(0,=0
它适用于大括号包含的case语句,但不支持unbraced:
switch(foo)
{
case(0):
{
...
break;
}
case(1):
... <-- should be indented
break;
}
我需要所有代码的{1s需要像这样格式化,如果我放弃= 0我得到这个。
switch(foo)
{
case(0):
{
... <-- should not be idented so much
break;
}
case(1):
...
break;
}
有没有办法指定vim不以任何特殊方式缩进大小写?
答案 0 :(得分:0)
最后用自己的内部缩进法完成了它:
function Indent(line)
" Store current pos
let l:indent = cindent(a:line)
let l:lineprec = a:line - 1
let l:linefirst = split(getline(a:line), " ")[0]
if l:linefirst ==# "{"
let l:case = split(getline(l:lineprec), " ")[0]
if l:case ==# "case"
let l:indent = indent(l:lineprec) + &shiftwidth
endif
endif
return l:indent
endfunction
添加.vimrc:
:set indentexpr=Indent(line(\".\"))
它有点特定于我的编码风格(案例必须后面跟一个空格)