paquettg
paquettg

Reputation: 1374

Have vim ai obey the formatting of spaces from the previous line

When I indent/format my code I use tabs for indentation, spaces for alignment. I feel that this is intuitive and very effective at keeping code nicely formatted independent of the tab width of other programmers (as long as they are using monospace).

I like to keep my code nicely formatted for other potential developers and this is one thing about vim that irks me and I want to know if there is a solution. Using the ai format in vim if you have a line that is 2 tabs followed by 9 spaces (assuming 4 space wide tabs) when you enter a new line vim will have the new line be 4 tabs and 1 space. Which is not the desired behavior( I would like it to be 2 tabs and 9 spaces, like the previous line).

My question is, is this even possible? If no, why not? If yes, how do I do it?

Upvotes: 3

Views: 253

Answers (1)

Mithrandir
Mithrandir

Reputation: 25397

Try this in your ~/.vimrc:

set noexpandtab
set copyindent
set preserveindent
set softtabstop=0
set shiftwidth=4
set tabstop=4

It will add spaces though, if your current indentation is not a multiple of tabstop.

Upvotes: 2

Related Questions