Elastyczne tabstopsy w Vimie?

26

Czy w Vimie jest wtyczka lub wbudowana funkcja, która pozwala na elastyczne tabstopsy ? Przeszukałem trochę i znalazłem referencje, które mówiły, że nie było to możliwe w Vimie, ale były one dość stare.

Czy istnieje sposób, aby mieć elastyczne tabstopy w Vimie? Nie mam nic przeciwko rozwiązaniu dla Neovim, ponieważ i tak z niego korzystam.

Jeroen
źródło
2
W Neovim jest otwarta prośba o tę funkcję.
Caleb,

Odpowiedzi:

18

O ile mogę stwierdzić, nie ma rozsądnego sposobu na osiągnięcie tego we wtyczce.

Jest łatka , ale trudno przewidzieć, kiedy / czy łatka zostanie scalona.

lcd047
źródło
6
Ktokolwiek, jeśli chcesz, aby to się połączyło, dopinguj go na vim-dev (a także odpowiedz, jak dobrze to działa dla ciebie)
Christian Brabandt
2
Ta łatka nie wydaje się być elastycznymi zakładkami. Zamiast tego są to zmienne tabstopsy, ale musisz wcześniej ustawić punkty zatrzymania. To jest miłe na swój sposób, ale nie do końca o to pytanie.
Caleb
@Caleb, prawdopodobnie mógłbyś coś napisać, po scaleniu patcha var tabstop.
Christian Brabandt,
@Christian nie, nie możesz. Zobacz dyskusję w Internecie, ale nie można tego zrobić jako skryptu / wtyczki w vimie (nawet ze zmienną z łatką tabstop), ponieważ zachowuje tylko jedną metodę renderowania wszystkich linii. Po prostu nie ujawnia, czego potrzebujesz, aby to zadziałało.
Caleb,
5
Wspomniana łatka została połączona od 8.1.105
Christian Brabandt
8

Z komentarzy: od wersji 8.1.105, vim ma +vartabsfunkcję czasu kompilacji, dzięki Christianowi Brabandtowi !

O ile widzę, pozwala to na implementację elastycznych tabstopsów. Zobacz aktualne żądanie ściągnięcia .

ulidtko
źródło
1
Możesz połączyć się z dokumentami lub wyjaśnić, jak można to zaimplementować. To może pomóc przyszłym czytelnikom bardziej niż link do użytkownika, który o tym wspomina.
Lucas
2
: set vartabstop = 4,20,10,8 - Spowoduje to, że pierwsza tabulacja będzie miała 4 spacje, druga 20 spacji, trzecia 10 spacji, a wszystkie następne tabulacje 8 spacji.
pdwalker
1
vartabstop nie jest wystarczający dla elastycznych tabstopsów, ponieważ tabstopsy nie mogą różnić się między blokami kodu. vartabstop dotyczy całego pliku.
Aron Griffis