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.