Tabstops elásticos en Vim?

26

¿Hay un complemento o una función incorporada en Vim que permita tabulaciones elásticas ? Busqué un poco y encontré algunas referencias que decían que no era posible en Vim, pero que eran bastante antiguas.

¿Hay alguna manera de tener topes elásticos en Vim? También estoy bien con una solución para Neovim, ya que eso es lo que uso de todos modos.

Jeroen
fuente
2
Hay una solicitud de función abierta para esto en Neovim.
Caleb

Respuestas:

18

Por lo que puedo decir, no hay una forma razonable de lograr esto en un complemento.

Hay un parche para él, pero es difícil predecir cuándo / si el parche se fusionará.

lcd047
fuente
66
Alguien, si quiere que esto se fusione, anímelo en vim-dev (y también responda lo bien que funciona para usted)
Christian Brabandt
2
Este parche no parece ser en realidad pestañas elásticas. En cambio, se trata de tabulaciones variables, pero debe configurar los puntos de parada antes de tiempo. Esto es agradable a su manera, pero en realidad no es de lo que se trata la pregunta.
Caleb
@Caleb, probablemente podrías escribir algo, una vez que se haya combinado el parche var tabstop.
Christian Brabandt
@ Christian no, no podrías. Vea la discusión en la web, pero esto no se puede hacer como un script / plugin en vim (incluso con la variable con parche de tabulación) porque solo mantiene un método para representar todas las líneas. Simplemente no expone lo que necesitarías para que esto funcione.
Caleb
55
El parche mencionado se fusionó a partir del 8.1.105
Christian Brabandt el
8

De los comentarios: desde la versión 8.1.105, vim tiene la +vartabsfunción de tiempo de compilación, ¡gracias a Christian Brabandt !

Hasta donde puedo ver, esto permite implementar tabulaciones elásticas. Ver la solicitud de extracción real .

ulidtko
fuente
1
Puede vincular a los documentos o explicar cómo se podría implementar. Eso podría ayudar a futuros lectores más que el enlace al usuario que lo menciona.
Lucas
2
: set vartabstop = 4,20,10,8 - Esto hará que la primera pestaña tenga 4 espacios de ancho, los segundos 20 espacios, los terceros 10 espacios y todas las pestañas siguientes 8 espacios.
pdwalker
1
vartabstop no es suficiente para las pestañas elásticas, porque las pestañas no pueden variar entre bloques de código. vartabstop se aplica a todo el archivo.
Aron Griffis