it-swarm-eu.dev

Zarovnat několik řádků pomocí VIM?

Například upravuji tento kód:

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

teď musím odsadit řádek skriptu:

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

Jak to mohu udělat bez přesunutí kurzoru na začátek každého řádku a stisknutí Tab?

51
wong2

Stisknutím V přepněte do režimu VISUAL LINE a zvýrazněte řádky, které chcete odsadit stisknutím j. Poté stiskněte > k jejich odsazení. Úplný příkaz by tedy byl Vjjj>.

Nebo umístěte kurzor na <script> označte a použijte 4>> pro odsazení čtyř řádků.

82
dogbane

Chcete-li doplnit výše uvedenou odpověď, podívejte se sem. https://stackoverflow.com/questions/235839/how-do-i-indent-multiple-lines-quickly-in-vi

Existuje více způsobů, jak toho dosáhnout, a nemůžu doufat, že budu soutěžit s dokumentací, která zde již byla.

Můj osobní favorit je == pro automatické odsazení. 5== pro automatické odsazení 5 řádků.

17
user606723

Chcete-li odsadit všechny řádky pod aktuální řádek

=G

Chcete-li odsadit celý soubor, přejděte na začátek souboru (gg) a poté odsaďte všechny řádky pod aktuálním řádkem (=G)

gg=G

Chcete-li odsadit aktuální řádek

==

Takže odsazení n řádků pod aktuální řádek

n==

Například k odsazení 4 řádků pod aktuální řádek

4==

Toto jsou nejjednodušší příkazy pro odsazení více řádků.

11
Sagar Jain

Kdybych to byl já, všiml bych si, že existují 4 řádky k odsazení, umístění na horní řádek a potom zadejte >4>. Pokud by bylo příliš mnoho řádků, které by bylo možné spočítat, umístil bych na horní řádek a napište mk, abych vytvořil značku s názvem k, pak umístěte na spodní řádek (což může být o několik obrazovek dále) a zadejte >'k

9
Michael Dillon

Zde je pěkný přístup, pokud se snažíte odsadit přes velké množství řádků:

:/<script>/,/<\/script>/ >>
4
bhinesley