2010-08-02 17 views
20

Używam VIM.Here jest moja sytuacja:Przesunięcie bloku wybranego kodu do prawej

1111111111111 
2222222222222 
3333333333333 
4444444444444 

Powyżej jest oryginalny kod, chcę uczynić je jak poniżej. Po wybraniu tych czterech linii, co należy zrobić, aby je przenieść?

1111111111111 
    2222222222222 
    3333333333333 
    4444444444444 

Pozdrawiam,

Odpowiedz

30

w trybie poleceń, można użyć >> wcięcia pojedynczą linię. 4>> spowoduje wcięcie bieżących i następnych trzech linii.

Jeśli nie wiesz, ile linii z góry (może być dość duży), możesz użyć zakresów. Przejdź do pierwszej linii zakresu i wpisz ma, aby umieścić znacznik A. Następnie przejdź do ostatniej linii i wpisz >'a, aby wcięcia od tego miejsca do znacznika A. Możesz robić różne cuda z zakresami.

W jaki sposób są wcięte zależy od kilku rzeczy, takich jak ustawienia shiftwidth. Zawsze mam takie same ustawienia shiftwidth i tabstop, aby uniknąć problemów:

:set ts=4 sw=4 

(na przykład).

+5

Nitpick: Używamy '>>' w * normalnym * trybie; tryb poleceń jest po wpisaniu ':' i wpisaniu polecenia. –

+3

Właściwie, zamierzam się odrzucić na tym. Vi zawsze nawiązywało do trybów poleceń i wstawiania, niezależnie od błędów wikipedii :-). Polecenia dwukropka są po prostu komendami 'ex' dozwolonymi w trybie poleceń, poprzedzając je': '. – paxdiablo

+0

Vim rozróżnia tryb normalny od polecenia * linia * i ważne jest, aby pamiętać, że są różne, w celu odwzorowania itp. Aby uniknąć nieporozumień, pomoc vim zawsze odnosi się do "trybu normalnego". Jednak ': help command-mode' powie ci o normalnym trybie i" to jest również znane jako tryb poleceń ". –

6

Hit >

to wszystko.

3

Użyj klawisza >.

4

Użyj v, aby wybrać blok, a następnie naciśnij> klawisz.

19

Jeśli wybrałeś już cztery linie w trybie wizualnym: > przesunie je o shiftwidth w prawo. Po ich przesunięciu zaznaczenie wizualne zniknie, ale możesz ponownie wcać się przez . (powtórz ostatnie polecenie).

Jeśli tryb normalny, z kursorem w dowolnym miejscu na pierwszej linii:

  • >> będzie wciąć tę linię,
  • 4>> będzie wciąć wszystkie cztery linie,
  • >3j zrobi to samo w inny sposób (wcięcie od tej linii do trzech wierszy w dół),
  • będzie wciskać wszystkie wiersze do końca akapitu (tj. do pierwszej pustej linii, patrz :help object-motions) i
  • >ap będzie wcięcie wszystkich wierszy dla p -aragraph (patrz :help text-objects), nawet jeśli kursor nie znajduje się na pierwszej linii.

Ponownie, można powtórzyć te komendy poprzez . do głębszych poziomów wcięcia (lub można ustawić shiftwidth odpowiednio).

Jeśli twój plik jest ładnie złożony z "akapitów" (a większość mojego kodu i prozy to), to uważam, że obiekt tekstowy ap jest najpowszechniejszym sposobem pracy z blokami tekstu, takimi jak ten . Możesz także użyć text-objects, aby przyspieszyć wybór wizualny.

0

Dla mnie numer musi być po, jak >>4, aby przejść na prawo lub przed, jak 4<<, aby przejść na lewo. Używam Vima 7.4.52.

Powiązane problemy