如何禁用vim的switch case缩进?

我目前正在与Vim战斗,我似乎无法让缩进选项做我想要的。

这是我的设置,我把它们放在.vimrc的底部,以确保它们优先。 你可以看到我有点疯狂,所以我试着关掉几乎所有东西:

set cindent set cinkeys=o,O set cinoptions= set cinwords= set indentexpr= 

在大多数情况下它似乎工作正常,它打开块后做一个缩进,一切都很好。 但有一个案例让我发疯,当有一个{在一个case陈述之后,下一行太过分了:

 switch () { case CASE: { // <-- next line gets indented to here, why?? // <-- should be indented to here 

我怎么能让它停止这样做? TIA

 :set cinoptions=l1 

(这是字母后跟第一个)

请看:帮助cinoptions – 默认字符串的值和不同选项的描述。

当我手动键入你的set命令时,我没有任何缩进。 您是否查看了输出:set all确认您的设置没有被覆盖?

注意:这可能应该在评论中,但目前我不允许该选项。

如果缩进是N个空格(用实际值替换N),请尝试以下操作

 set cinoptions=p0,t0,:N,=0 set cinwords=if,else,switch,case,for,while,do set cindent 

:N – > place’case’标签来自switch缩进的0个字符

= 0 – >缩进case标签内的语句