Vim Tips Wiki
No edit summary
Line 35: Line 35:
   
 
I assume most other people do this: <code>class A extends B {<CR><Tab>A() {<CR><Tab>super();<CR><BS>}<CR><BS>}</code>. I wouldn't say either way of typing is better than the other, since they both require the same number of keystrokes.
 
I assume most other people do this: <code>class A extends B {<CR><Tab>A() {<CR><Tab>super();<CR><BS>}<CR><BS>}</code>. I wouldn't say either way of typing is better than the other, since they both require the same number of keystrokes.
  +
:How does that interfere with Vim (correctly) deleting whitespace on empty lines? This tip is generally misguided, since most users who think they need it, really need to learn to use <tt>S</tt> {{help|S}}. That, and turn <tt>:filetype indent on</tt>, which removes the need to type <Tab> in the above code. ([[User:Spiiph|Spiiph]] 09:05, 15 August 2009 (UTC))
 
 
----
 
----

Revision as of 09:05, 15 August 2009

Duplicate tip

This tip is very similar to the following:

These tips need to be merged – see the merge guidelines.

Tip 1327 Printable Monobook Previous Next

created September 10, 2006 · complexity basic · author Decker · version 5.7


The default behavior of the 'autoindent' option is as follow:

Copy indent from current line when starting a new line (typing <CR> in Insert mode or when using the "o" or "O" command). If you do not type anything on the new line except <BS> or CTRL-D and then type <Esc> or <CR>, the indent is deleted again.

I find that behavior quite annoying since the cursor jumps to the left when empty lines are inserted and 'escape' is pressed. Fortunately, it is possible to force Vim to keep the indentation with the following lines in your vimrc:

inoremap <CR> <CR><Space><BS>
nnoremap o o<Space><BS>
nnoremap O O<Space><BS>

Comments

Thank you. This tip is very helpful. I was getting very annoyed with Vim deleting the blank lines because it interferes with the way I type.

The way I type the following is: class A extends B {<CR><CR>}<Up><Tab>A() {<CR><CR>}<Up><Tab>super();

class A extends B {
    A() {
        super();
    }
}

I assume most other people do this: class A extends B {<CR><Tab>A() {<CR><Tab>super();<CR><BS>}<CR><BS>}. I wouldn't say either way of typing is better than the other, since they both require the same number of keystrokes.

How does that interfere with Vim (correctly) deleting whitespace on empty lines? This tip is generally misguided, since most users who think they need it, really need to learn to use S :help S. That, and turn :filetype indent on, which removes the need to type <Tab> in the above code. (Spiiph 09:05, 15 August 2009 (UTC))