Recuar várias linhas com o VIM?

42

Por exemplo, estou editando este código:

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

agora eu preciso recuar a linha de script:

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

Como eu poderia fazer isso sem mover o cursor para o início de cada linha e pressionar Tab?

wong2
fonte
No modo de comando:gg=G
Prince John Wesley

Respostas:

71

Pressione Vpara alternar para o modo VISUAL LINE e destaque as linhas que deseja recuar pressionando j. Em seguida, pressione >para recuá-los. Portanto, o comando completo seria Vjjj>.

Como alternativa, coloque o cursor na <script>tag e use 4>>para recuar quatro linhas.

dogbane
fonte
1
Além disso, ao alterar vários níveis de recuo,. é extremamente útil (ele moverá o mesmo 'bloco' com visual, marcas ou uma [contagem] como 4 >> acima).
Pif
Além disso, se o seu arquivo de sintaxe puder fazer a correspondência de tags, você poderá colocar o cursor na palavra "script" e pressionar v para o modo visual,% para ir para a tag correspondente e> recuar ou = recuar automaticamente com base na sintaxe, portanto, o comando total seria v%> ou v% =
ben
Também funciona com o modo visual em termos de caracteres (v minúsculo), que é um pouco mais fácil de digitar. Então vjjj>
James Scriven
10

Para recuar todas as linhas abaixo da linha atual

=G

Portanto, para recuar todo o arquivo, vá para o início do arquivo ( gg) e depois recue todas as linhas abaixo da linha atual ( =G)

gg=G

Para recuar a linha atual

==

Portanto, para recuar nlinhas abaixo da linha atual

n==

Por exemplo, para recuar 4 linhas abaixo da linha atual

4==

Estes são os comandos mais simples para recuar várias linhas.

Sagar Jain
fonte
8

Se fosse eu, eu notaria que existem 4 linhas para recuar, posicione na linha superior e digite >4>. Se houvesse muitas linhas para contar, eu posicionaria na linha superior e digitaria mkpara fazer uma marca chamada k, em seguida posicionaria na linha inferior (que pode estar a várias telas de distância) e digite>'k

Michael Dillon
fonte
boa dica para economizar nas contas, obrigado!
flickerfly 20/09
3

Aqui está uma boa abordagem, se você estiver tentando recuar em um grande número de linhas:

:/<script>/,/<\/script>/ >>
Bhinesley
fonte