Tabstops élastiques à Vim?

26

Existe-t-il un plugin ou une fonctionnalité intégrée dans Vim qui permet des onglets élastiques ? J'ai cherché un peu et j'ai trouvé des références disant que ce n'était pas possible à Vim, mais elles étaient assez anciennes.

Existe-t-il un moyen d'avoir des languettes élastiques dans Vim? Je suis également d'accord avec une solution pour Neovim, car c'est ce que j'utilise de toute façon.

Jeroen
la source
2
Il y a une demande de fonctionnalité ouverte pour cela sur Neovim.
Caleb

Réponses:

18

Pour autant que je sache, il n'y a aucun moyen raisonnable d'accomplir cela dans un plugin.

Il existe un correctif , mais il est difficile de prédire quand / si le correctif sera fusionné.

lcd047
la source
6
Tout le monde, si vous voulez que cela soit fusionné, veuillez l'encourager chez vim-dev (et aussi répondre à quel point cela fonctionne pour vous)
Christian Brabandt
2
Ce patch ne semble pas réellement être des languettes élastiques. Il s'agit plutôt de tabstops variables, mais vous devez configurer les points d'arrêt à l'avance. C'est bien à sa manière mais pas vraiment de quoi il s'agit.
Caleb
@Caleb, vous pourriez probablement script quelque chose, une fois que le patch var tabstop a été fusionné.
Christian Brabandt
@Christian non tu ne pouvais pas. Voir la discussion sur le web mais cela ne peut pas être fait comme un script / plugin dans vim (même avec la variable avec patch tabstop) car il ne conserve qu'une seule méthode pour rendre toutes les lignes avec. Cela n'expose pas ce dont vous auriez besoin pour que cela fonctionne.
Caleb
5
Le patch mentionné a été fusionné à partir du 8.1.105
Christian Brabandt
8

D'après les commentaires: depuis la version 8.1.105, vim a une fonction de +vartabscompilation, grâce à Christian Brabandt !

Pour autant que je puisse voir, cela permet d'implémenter des tabstops élastiques. Voir la demande de traction réelle .

ulidtko
la source
1
Vous pouvez créer un lien vers les documents ou expliquer comment il pourrait être mis en œuvre. Cela pourrait aider davantage les futurs lecteurs que le lien vers l'utilisateur qui le mentionne.
Lucas
2
: set vartabstop = 4,20,10,8 - Cela rendra le premier onglet 4 espaces large, les deuxièmes 20 espaces, les troisièmes 10 espaces et tous les onglets suivants 8 espaces.
pdwalker
1
vartabstop n'est pas suffisant pour les tabstops élastiques, car les tabstops ne peuvent pas varier entre les blocs de code. vartabstop s'applique à l'ensemble du fichier.
Aron Griffis