Wcięcie kilku linii za pomocą VIM?

42

Na przykład edytuję ten kod:

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

teraz muszę wciąć wiersz skryptu:

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

Jak mogę to zrobić bez przesuwania kursora na początek każdej linii i naciskania Tab?

wong2
źródło
W trybie komend:gg=G
Prince John Wesley,

Odpowiedzi:

71

Naciśnij, Vaby przejść do trybu LINIA WIZUALNA i podświetl linie, które chcesz wciąć, naciskając j. Następnie naciśnij, >aby je wciąć. Tak więc kompletne polecenie byłoby Vjjj>.

Możesz też umieścić kursor na <script>znaczniku i użyć 4>>wcięcia czterech linii.

dogbane
źródło
1
Również przy zmianie wielu poziomów wcięcia,. jest niezwykle przydatny (przesunie ten sam „blok” pod względem wizualnym, znakami lub [liczbą] jak powyższe 4 >>).
Pif,
Ponadto, jeśli plik składni może dopasowywać znaczniki, możesz ustawić kursor na słowie „skrypt” i nacisnąć v, aby przejść do trybu wizualnego,%, aby przejść do pasującego znacznika, i>, aby wciąć lub =, aby automatycznie wciąć na podstawie składni, więc całkowita komenda wynosiłaby v%> lub v% =
ben
Działa to również w trybie wizualnym znakowym (małe litery v), który jest nieco łatwiejszy do pisania. Więc vjjj>
James Scriven
10

Wcięcie wszystkich linii poniżej bieżącej linii

=G

Tak więc, aby wciąć cały plik, przejdź na początek pliku ( gg), a następnie wcięcie wszystkich linii poniżej bieżącej linii ( =G)

gg=G

Wcięcie bieżącej linii

==

Tak więc, aby wciąć nlinie poniżej bieżącej linii

n==

Na przykład, aby wciąć 4 linie poniżej bieżącej linii

4==

Są to najprostsze polecenia do wcięcia wielu linii.

Sagar Jain
źródło
8

Gdybym to był ja, zauważyłbym, że są 4 wiersze do wcięcia, ustaw na górnej linii, a następnie wpisz >4>. Gdyby było zbyt wiele wierszy do zliczenia, ustawiłbym pozycję na górnej linii i wpisałem, mkaby zrobić znak o nazwie k, a następnie ustawić na dolnej linii (która może być kilka ekranów dalej) i wpisać>'k

Michael Dillon
źródło
fajna wskazówka, aby zaoszczędzić, wykonując matematykę na liniach, dzięki!
flickerfly
3

Oto dobre podejście, jeśli próbujesz wciąć dużą liczbę wierszy:

:/<script>/,/<\/script>/ >>
Bhinesley
źródło