Elastische Tabstops in Vim?

26

Gibt es ein Plugin oder eine integrierte Funktion in Vim, die elastische Tabstops ermöglicht ? Ich habe ein bisschen gesucht und einige Referenzen gefunden, die besagen, dass es in Vim nicht möglich war, aber diese waren ziemlich alt.

Gibt es in Vim eine Möglichkeit, elastische Tabstops zu haben? Mir geht es auch gut mit einer Lösung für Neovim, da ich sie sowieso benutze.

Jeroen
quelle
2
Auf Neovim ist hierfür eine Feature-Anfrage offen.
Caleb

Antworten:

18

Soweit ich das beurteilen kann, gibt es keinen vernünftigen Weg, dies in einem Plugin zu erreichen.

Es gibt einen Patch dafür, aber es ist schwer vorherzusagen, wann / ob der Patch zusammengeführt wird.

lcd047
quelle
6
Wenn Sie möchten, dass dies zusammengeführt wird, freuen Sie sich bitte bei vim-dev darüber (und antworten Sie, wie gut dies für Sie funktioniert)
Christian Brabandt
2
Dieser Patch scheint eigentlich keine elastischen Tabstops zu sein. Stattdessen sind es variable Tabstopps, aber Sie müssen die Stopps im Voraus einrichten. Das ist auf seine Art schön, aber nicht wirklich, worum es in der Frage geht.
Caleb
@Caleb, du könntest wahrscheinlich etwas skripten, sobald der var tabstop patch zusammengeführt wurde.
Christian Brabandt
@Christian nein du konntest nicht. Sehen Sie sich die Diskussion im Internet an, aber dies kann nicht als Skript / Plugin in vim durchgeführt werden (auch nicht mit der Variablen mit Tabstop-Patch), da nur eine Methode zum Rendern aller Zeilen beibehalten wird. Es zeigt nur nicht, was Sie brauchen würden, um diese Arbeit zu machen.
Caleb
5
Der erwähnte Patch wurde am 8.1.105
Christian Brabandt
8

Aus den Kommentaren: Seit Version 8.1.105 hat vim +vartabsdank Christian Brabandt eine Funktion zur Kompilierung !

Soweit ich sehen kann, können so elastische Tabstops implementiert werden. Siehe die aktuelle Pull-Anfrage .

ulidtko
quelle
1
Sie können einen Link zu den Dokumenten erstellen oder erläutern, wie diese implementiert werden können. Das könnte zukünftigen Lesern mehr helfen als der Link zu dem Benutzer, der es erwähnt.
Lucas
2
: set vartabstop = 4,20,10,8 - Dadurch wird der erste Tab 4 Leerzeichen breit, der zweite 20 Leerzeichen, der dritte 10 Leerzeichen und alle folgenden Tabs 8 Leerzeichen.
PDWalker
1
vartabstop ist für elastische Tabstops nicht ausreichend, da die Tabstops nicht zwischen Codeblöcken variieren können. vartabstop gilt für die gesamte Datei.
Aron Griffis