Ich versuche, vim mit Tabulatoren automatisch einzurücken und mit Leerzeichen auszurichten, aber tatsächlich, vim mit Tabulatoren einzurücken und die Ausrichtung mit Tabulatoren + Leerzeichen zu füllen.
Vim macht es:
(Jeder Block ist ein Tab)
{
>--long a = 1,
>-->--..b = 2,
>-->--..c = 3;
}
Darf es tun:
{
>--long a = 1,
>--.....b = 2,
>--.....c = 3;
}
Ich denke, es gibt viele Fragen zum Thema Tabulatoren und Leerzeichen, aber keine bietet eine Lösung für Just Works:
- /programming/8493705/vim-use-tabs-for-indentation-spaces-for-alignment-with-c-source-files
- /programming/29208431/vim-indent-with-tabs-align-with-spaces
- /programming/6504507/vim-indenting-and-alignment-combining-spaces-and-tabs
Eigentlich benutze ich:
set ai
set cindent
set cinoptions=(0,:0,u0,U0,g0)
Ich habe das Smart Tab Plugin ausprobiert , was anscheinend gut funktioniert, aber wenn ich es versuche, gg=G
erhalte ich einige seltsame Fehler:
Error detected while processing function CtabRedoIndent..<SNR>12_CheckAlign:
line 11:
E108: No such variable: "b:ctab_lastalign"
Press ENTER or type command to continue
Error detected while processing function CtabRedoIndent:
line 10:
E170: Missing :endwhile
Diese Diskussion scheint ziemlich alt zu sein, also gibt es jetzt, 2015, eine offizielle Lösung, um damit umzugehen?
tab-characters
whitespace
tjbrn
quelle
quelle
Antworten:
Dies wirklich automatisch zu tun ist schwierig. Vim weiß nicht, was "Einrückung" und was "Ausrichtung" ist. und manche Menschen sind sich vielleicht nicht einig, was genau Einrückung und Ausrichtung ausmacht.
Davon abgesehen ist das Smart Tabs-Plugin so konzipiert, dass es genau das tut, was Sie wollen. Ich fand, dass es für C-Dateien einigermaßen gut funktioniert, aber eine Reihe von Vorbehalten hat; Es bricht beispielsweise Python-Dateien und führt manchmal (für mich jedenfalls) unerwartete Aktionen für C-Dateien aus.
Wenn ich mir die Quelle anschaue, kann ich nicht wirklich herausfinden, wie es in 5 Minuten funktioniert, und in Kombination mit der Tatsache, dass es einige Dinge kaputt macht, sollte ich Ihnen raten, vorsichtig vorzugehen ...
quelle
Das von Ihnen erwähnte Smart Tabs-Plug-In ist in etwa so gut wie es nur geht. Ich bin anfangs auf denselben Fehler gestoßen, den Sie gemacht und aufgegeben haben, habe aber schließlich ein paar Minuten damit verbracht, ihn zu beheben. Wenden Sie den folgenden Patch an:
Ich habe später herausgefunden, dass jemand eine ähnliche Lösung im Wiki-Abschnitt "Smart Tabs" vorgeschlagen hat . Leider gab es keine Neuerscheinung.
quelle
Das Einrücken in vim erfolgt einfach mithilfe des folgenden Skripts
Skript zum Einrücken einer einzelnen Datei
quelle