Jak zastosować polecenie do wszystkich linii?

19

Jeśli chcę wciąć wszystkie wiersze w dokumencie, mogę wpisać, >Gaby zastosować go do bieżącej linii i poniżej, a następnie zastosować i >ggzastosować do linii powyżej.

Czy istnieje kombinacja, której mogę użyć, aby zastosować tylko >do wszystkich linii jednocześnie?

dr
źródło

Odpowiedzi:

19

Szukasz :>polecenia i zakresu 1,$( %w skrócie) dla całego pliku.

:%>

Aby uzyskać więcej pomocy, zobacz:

:h :>
:h :range
Peter Rincker
źródło
5
Ze względu na tytuł tego pytania („zastosuj polecenie do wszystkich wierszy”), uważam, że warto zauważyć, że przykład w pytaniu wymienia operator trybu normalnego >, podczas gdy w tej odpowiedzi użyto polecenia trybu poleceń :>. Nie są to, ściśle mówiąc, to samo. To, że mają taką samą nazwę, należy uznać za przypadek; nie zakładaj, że możesz ogólnie wymieniać operatorów i polecenia. Na przykład, gUoperator konwertuje tekst na wielkie litery, ale :%gUto nie poprawnym poleceniem, aby zastosować takie same dla całego bufora.
tommcdo,
7

Jednym ze sposobów wcięcia wszystkich wierszy w dokumencie:

:%>
użytkownik21497
źródło
3

Bez wychodzenia z trybu normalnego możesz po prostu:

gg>G
romainl
źródło
2
Minusem jest to, że tracisz pozycję w pliku
TankorSmash,
Wszystkie pozostałe odpowiedzi mają tę wadę, a OP nie wspomniał o „przestrzeganiu pozycji kursora” jako wymogu.
romainl,
1
<co> można użyć do powrotu do poprzedniej pozycji Rozwiązanie @ romainl wymaga cofnięcia się dwa razy, podczas gdy drugi wymaga powrotu tylko raz
Brett Y
Z pewnością docenisz wartość utrzymania swojego miejsca i to, jak cenna byłaby odpowiedź, która utrzymałaby tę pozycję.
TankorSmash,
1
Właśnie dlatego nie jest to lekceważone. To po prostu informacja, że ​​jest gdzieś lepsza opcja i że powinni szukać dalej. Na przykład w witrynie programistycznej SE niedbały kod, który rozwiązuje problem, rozwiązuje problem, ale nadal można spodziewać się znalezienia innego rozwiązania, które rozwiązałoby problem i wygląda dobrze.
TankorSmash,
3

Inna opcja, o której jeszcze nie wspomniano:

:g/^/>

Spowoduje to uruchomienie polecenia >we wszystkich liniach, które pasują do wzorca ^.

Minusem jest to, że spowoduje to zastąpienie historii wyszukiwania.

Brett Y
źródło