¿Sangra varias líneas con VIM?


42

Por ejemplo, estoy editando este código:

<html>
<body>
<script>
    var a = 10;
    a += 100;
</script>
</body>
</html>

ahora necesito sangrar la línea del script:

<html>
<body>
    <script>
        var a = 10;
        a += 100;
    </script>
</body>
</html>

¿Cómo podría hacer esto sin mover el cursor al comienzo de cada línea y presionar Tab?


En modo comando:gg=G
Prince John Wesley

Respuestas:


71

Presione Vpara cambiar al modo VISUAL LINE y resalte las líneas que desea sangrar presionando j. Luego presione >para sangrarlos. Entonces el comando completo sería Vjjj>.

Alternativamente, coloque el cursor en la <script>etiqueta y use 4>>para sangrar cuatro líneas.


1
Además, al cambiar varios niveles de sangría,. es extremadamente útil (moverá el mismo 'bloque' ya sea visual, con marcas o un [conteo] como los 4 >> anteriores).
Pif

Además, si su archivo de sintaxis puede hacer coincidir etiquetas, puede tener el cursor sobre la palabra "script" y presionar v para el modo visual,% para ir a la etiqueta coincidente y> para sangrar o = para sangrar automáticamente según la sintaxis, entonces el comando total sería v%> o v% =
ben

Esto también funciona con el modo visual de carácter inteligente (v minúscula), que es un poco más fácil de escribir. Entonces vjjj>
James Scriven


10

Para sangrar todas las líneas debajo de la línea actual

=G

Entonces, para sangrar todo el archivo, vaya al comienzo del archivo ( gg) y luego sangra todas las líneas debajo de la línea actual ( =G)

gg=G

Para sangrar la línea actual

==

Entonces, sangrar nlíneas debajo de la línea actual

n==

Por ejemplo, para sangrar 4 líneas debajo de la línea actual

4==

Estos son los comandos más simples para sangrar varias líneas.


8

Si fuera yo, notaría que hay 4 líneas para sangrar, colocar en la línea superior y luego escribir >4>. Si hubiera demasiadas líneas para contar, me colocaría en la línea superior y escribiría mkpara hacer una marca llamada k, luego se colocaría en la línea inferior (que podría estar a varias pantallas de distancia) y escribiría>'k


buen consejo para ahorrar haciendo los cálculos en líneas, gracias!
flickerfly

3

Este es un buen enfoque, si está tratando de sangrar una gran cantidad de líneas:

:/<script>/,/<\/script>/ >>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.