
Mi .vimrc
muestra líneas verticales para que pueda seguir los bloques de identificación fácilmente, como casi todos los editores de texto/IDE.
if(x == 1){
| if( y == 1){
| | y();
| }
}
¿Hay alguna manera de hacer esto más útil y mostrar el nivel de identificación? No lo confundiré con el código real, ya que ya uso un color de contraste extremadamente bajo para ellos.
if(x == 1){
1 if( y == 1){
1 2 y();
1 }
}
Sería muy útil encontrar mi nivel de anidamiento con algunos métodos locos que tengo que refactorizar en mi trabajo. Mi solución alternativa actual implica tener ventanas horizontales para poder dejar la superior cuando los bloques comienzan a volverse locos y la inferior donde navego para cambiar el código.
PD: ya tengo complementos de paréntesis de arcoíris. pero esos ya no ayudan.
Respuesta1
No tengo suficiente representante para comentar tu pregunta, así que publicaré una respuesta y la actualizaré si puedo encontrar algo mejor. Aquí está mi "respuesta":
No es exactamente lo que estás pidiendo, pero ¿ya has probado ":set list"? (":set nolist" para desactivar). Si son pestañas físicas (caracteres de pestaña verdaderos, por ejemplo ^I
), se mostrará una ^I
para cada pestaña. De esa manera, puede ver y contar visualmente el número de pestañas de una línea determinada. Por eso digo que no es exactamente lo que estás buscando, por ejemplo, el formato que proporcionaste/sugeriste en tu pregunta.
Además, FWIW, también tenía la costumbre de usarlo cuando trabajaba con código menos complejo (por ejemplo, cientos de LOC y, como máximo, unos pocos archivos). Una vez que comencé a trabajar en proyectos con miles o millones de LOC y cientos de archivos, comencé a usarlos para que los corchetes se alinearan (un poco de la misma idea que buscas, en mi opinión). Esto realmente ayuda cuando también utilizas el cambio entre corchetes en vim. También utilizo la división de ventana horizontal, ya que a veces algunos códigos son demasiado largos (rogando por su propia función, etc.).if(statement){
// code here...
}if ( (complexStatement) )
{
// code here...
}%
HT
Respuesta2
Bueno, no hace exactamente lo que quieres, porque esto no es posible. Pero puedes usar miSeñales dinámicascomplemento para mostrar el nivel de sangría en la columna del margen. Configurar :let g:Signs_IndentationLevel=1
y ejecutar :Signs
.
Consulte la ayuda en :h DynamicSigns.txt
para saber qué puede hacer con ella.