Tabstops elásticos no Vim?

26

Existe um plug-in ou um recurso interno no Vim que permita tabstops elásticos ? Pesquisei um pouco e encontrei algumas referências dizendo que não era possível no Vim, mas eram bastante antigas.

Existe uma maneira de ter tabstops elásticos no Vim? Também estou bem com uma solução para o Neovim, pois é isso que eu uso de qualquer maneira.

Jeroen
fonte
2
Há uma solicitação de recurso aberta para isso no Neovim.
Caleb

Respostas:

18

Tanto quanto posso dizer, não há uma maneira razoável de fazer isso em um plugin.

Existe um patch para ele, mas é difícil prever quando / se o patch será mesclado.

lcd047
fonte
6
Qualquer pessoa, se você quer este a ser incorporada, por favor elogio para ele no vim-dev (e também responder de volta como isso funciona bem para você)
Christian Brabandt
2
Este patch não parece realmente ser tabstops elásticos. Em vez disso, são tabulações variáveis, mas você precisa configurar os pontos de parada antes do tempo. Isso é agradável à sua maneira, mas não é exatamente do que se trata.
Caleb
Caleb @, você provavelmente poderia escrever algo, uma vez que o patch var tabstop foi mesclado.
Christian Brabandt 7/03/16
@ Christian não, você não poderia. Veja a discussão na web, mas isso não pode ser feito como um script / plugin no vim (mesmo com a variável com patch tabstop) porque ele mantém apenas um método para renderizar todas as linhas. Apenas não expõe o que você precisaria para fazer isso funcionar.
Caleb
5
O patch mencionado foi mesclado a partir de 8.1.105
Christian Brabandt
8

Dos comentários: desde a versão 8.1.105, o vim possui +vartabsum recurso de tempo de compilação, graças a Christian Brabandt !

Tanto quanto eu posso ver, isso permite implementar tabstops elásticos. Veja a solicitação de recebimento real .

ulidtko
fonte
11
Você pode vincular os documentos ou explicar como ele pode ser implementado. Isso pode ajudar os futuros leitores mais do que o link para o usuário que o menciona.
Lucas
2
: defina vartabstop = 4,20,10,8 - Isso fará com que a primeira guia tenha 4 espaços de largura, os segundos 20 espaços, os terceiros 10 espaços e todas as seguintes guias em 8 espaços.
Pdwalker
11
vartabstop não é suficiente para tabstops elásticos, porque os tabstops não podem variar entre os blocos de código. vartabstop se aplica a todo o arquivo.
Aron Griffis 14/02