I want my vim indentation to work as follows: if I have
▷ ▷ int function(int x,▒int y, int z) {
and I press enter, I want to get the following:
▷ ▷ int function(int x,
▷ ▷ _____________int y, int z) {
Where "▷" is a tab and "_" is a space.
In other words, I want to use tabs, but if I have a linebreak in a place that doesn't add an indentation level, then the non-indented line should be aligned with whitespace.
This allows me to use tabs for indentation, but preserve formatting on non-indent levels so that formatting is preserved even if the tab size is changed.
So far, I have not found a way that this is possible with Vim. Preserveindent and copyindent aren't what I'm looking for. They honor expandtab, and I want to only use expandtab for indentation, and spaces for alignment.