Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to disable vim's indentation of switch case?

Tags:

I'm currently fighting with Vim, I can't seem to make the indentation options do what I want.

Here are my settings, I put them at the bottom of .vimrc to make sure they take precedence. As you can see I'm going a little crazy, so I tried turning off almost everything:

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

In most cases it seems to work fine, it does one indent after opening a block and everything is fine. But there is one case that is driving me crazy, when there is a { after a case statement, the next line is way too far indented:

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

How can I make it stop doing this? TIA

like image 283
andy Avatar asked Aug 09 '10 22:08

andy


2 Answers

:set cinoptions=l1 

(that's the letter ell followed by a number one)

Look at :help cinoptions-values for the default string and descriptions of the different options.

like image 57
ergosys Avatar answered Sep 25 '22 22:09

ergosys


When I manually key in your set commands, I get no indentation whatsoever. Have you looked at the output of :set all to confirm your settings are not being overridden?

Note: This should probably be in a comment, but that option is presently disallowed to me.

like image 36
rlduffy Avatar answered Sep 23 '22 22:09

rlduffy