I have autoindent enabled in my .vimrc file but have run into an annoying bug/feature. For example, when I'm tabbed in 3 times, and I hit return, the new line is also tabbed in 3 times. Then when I hit enter again, that new line is also indented 3 times, as it should. The problem occurs when I go back up to the previous line (the first of the 2 new lines). VIM automatically removes the whitespace because it saw it as an empty line.

Is there a way to disable this from happening? I'd like to be able to back to coding like this:

function test(){ <return> <return> } <up> <right>

Thanks!

link|improve this question
feedback

1 Answer

up vote 1 down vote accepted

I don't know of any option setting that would make Vim automatically leave those lines with the leading whitespace. The usual solution is to change your editing style so that you don't lose that whitespace, or to use a normal-mode command such as o, O or S to start a new line so that the indenting is done automatically, or force indenting on the current line in insert mode with Ctrl-T or Ctrl-F.

However, if you really want to use that particular key sequence and not lose your indenting, then I think this mapping will work.

:inoremap <Return> <Space><BS><Return>

By putting a space (or any character) on the line, then backspacing over it, you're telling Vim that it's a non-empty line and it will leave the leading whitespace alone.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.