Ich habe bereits eine Reihe von Fragen und Antworten lesen:Vim: Einrücken mit Tabulatoren, richten mit Leerzeichen
- Vim: Use tabs for indentation, spaces for alignment with C source files
- Vim: Align continous lines with spaces
Aber keiner von ihnen bietet eine Lösung für mich.
Ich möchte wirklich das "Indent with tabs, align with spaces" -Prinzip anwenden, aber wenn es um die automatische Einrückung geht, konnte ich Vim nicht beibringen, wie man das richtig macht.
den Code Betrachten wir unter der Annahme tabstops == 3
, shiftwidth == 3
(>--
bedeutet Registerkarte und .
(ein Punkt) bedeutet Raum):
{
>--long a = 1,
>-->--..b = 2,
>-->--..c = 3;
}
Also, es mit Tabs so viel wie möglich Einzüge und füllt dann den Rest mit Leerzeichen. Aber es ist tatsächlich ein sehr schlechter Ansatz: Wenn jemand diesen Code mit anderen Tab-Größe lesen wird, wird der Code durcheinander gebracht. Hier, wie es mit Tab-Größe gleich 8 Zeichen aussehen wird:
{
>-------long a = 1,
>------->-------..b = 2,
>------->-------..c = 3;
}
Es ist schrecklich. Das Problem ist, dass Vim nicht zwischen Einrückung und Ausrichtung unterscheidet.
Um es richtig aussehen mit dem, was der Registerkarte Größe ist, sollte der Code auf diese Weise eingerückt werden:
{
>--long a = 1,
>--.....b = 2,
>--.....c = 3;
}
Dann wird dieser Code schön aussehen, was die Registerkarte Größe. Zum Beispiel 8 Zeichen:
{
>-------long a = 1,
>-------.....b = 2,
>-------.....c = 3;
}
Wie erreicht man dies?
Vielleicht würde das Plugin Tabular geben Sie, was Sie suchen? https://github.com/godlygeek/tabular – Zach