Vim-Tabs und Leerzeichen

Vim-Tabs und Leerzeichen

Ich möchte, dass meine Vim-Einrückung wie folgt funktioniert: Wenn ich

▷   ▷   int function(int x,▒int y, int z) {

und ich drücke die Eingabetaste, ich möchte Folgendes erhalten:

▷   ▷   int function(int x,
▷   ▷   _____________int y, int z) {

Wobei „▷“ ein Tabulator und „_“ ein Leerzeichen ist.

Mit anderen Worten: Ich möchte Tabulatoren verwenden, aber wenn ich einen Zeilenumbruch an einer Stelle habe, die keine Einrückungsebene hinzufügt, dann sollte die nicht eingerückte Zeile mit Leerzeichen ausgerichtet werden.

Dadurch kann ich Tabulatoren zur Einrückung verwenden, die Formatierung auf den Ebenen ohne Einrückung jedoch beibehalten, sodass die Formatierung auch dann erhalten bleibt, wenn die Tabulatorgröße geändert wird.

Bisher habe ich keine Möglichkeit gefunden, dies mit Vim zu ermöglichen. Preserveindent und Copyindent sind nicht das, wonach ich suche. Sie berücksichtigen expandtab, und ich möchte expandtab nur für Einrückungen und Leerzeichen für die Ausrichtung verwenden.

Antwort1

Entsprechend derVim Wiki, DieIntelligente RegisterkartenPlugin wird das tun. Ich habe es selbst nicht ausprobiert.

Antwort2

Derzeit scheint dies in vim nicht machbar zu sein. Sie können entweder Tabulatoren oder Leerzeichen verwenden, nicht beides. Das ist nicht überraschend, da die Zeit für Leerzeichen gegenüber Tabulatoren sehr sprachabhängig ist. Bedenken Sie: Wie würden Sie in Python Folgendes behandeln:

x = fn(abc, 'def', {
                       ghi: jkl,
                       mno: pqr,
                   })

Sollten Sie irgendwann zu Tabs zurückkehren? Das wäre ideal, aber sehr kontextabhängig und würde sprachübergreifend nicht wirklich funktionieren. Ein weiteres lustiges Beispiel in Haskell:

data Something = Something { flag1 :: Bool
                           , flag2 :: Bool }
               deriving (Eq, Ord, Show)

Viel Glück damit.

Leider bin ich zu dem Schluss gekommen, dass für diese Art von Funktionalität sprachspezifische Erweiterungen erforderlich sind. Wenn Sie jedoch eine gute Möglichkeit kennen, dies zu tun, würde ich sie gerne erfahren.

verwandte Informationen