Powiedz, że mam taki blok tekstu:
// Komentarz 1 // Komentarz 2 // Komentarz 3
I chcę dołączyć każdą z tych linii na końcu 3 odpowiednich linii kodu:
foo = 1; bar = 2; baz = 3;
Tak więc wynik końcowy jest
foo = 1; // Komentarz 1 bar = 2; // Komentarz 2 baz = 3; // Komentarz 3
Czy jest łatwy sposób to zrobić w Vimie?
Odpowiedzi:
Używać trybu blokowego wizualnej ( Ctrl+ v), aby wybrać jeden zestaw linii, wówczas yalbo dim.
Następnie, jeśli wybrałeś linie foo, bar, baz, ponownie użyj trybu blokowania wizualnego, aby wybrać pierwszą kolumnę linii komentarzy, a następnie Shift+ pje w odpowiednie miejsce (lub jeśli wybrałeś linie komentarzy, wybierz ostatnią kolumnę baz foo bar linie i pje na swoim miejscu.
Poznanie pozycjonowania może wymagać trochę praktyki, ale kiedy masz talent, będziesz latał. Po zaznaczeniu bloku możesz również użyć Shift+, Aaby dodać np. Spacje do bloku (podczas dodawania nowy tekst pojawi się tylko w górnym wierszu, ale po naciśnięciu klawisza Esc magicznie pojawi się we wszystkich wybranych wierszach) . Podobnie, Shift+ izrobi to samo na początku wybranego bloku w każdej linii.
Musisz jednak później wyczyścić puste linie.
Jest też świetny odcinek vimcastów pokazujący te techniki bardziej szczegółowo.
źródło
:set ve=all
jest bardzo wszechstronne. Ja osobiście korzystam z wtyczki UnconditionalPaste ( vim.org/scripts/script.php?script_id=3355 ), ponieważ jest ona nieco lepiej dostosowana do moich potrzeb.Cóż, jeśli jest to łatwe, czy nie, powiedz mi. Przejdź do
// Comment 1
, kliknij,dd
aby usunąć. Przejdź do linii za pomocąfoo = 1;
i naciśnijp
, aby wkleić poniżej linii. Przejdź w górę dofoo
ponownie i naciśnij,J
aby dołączyć do rzędu. Tadaźródło
Następujące czynności zrobią dokładnie to, co opisujesz:
W zależności od tego, co faktycznie musisz zrobić (w przeciwieństwie do przykładu), w praktyce może być łatwiejsze wybranie bloku „// Comment1” itd. Block ( Ctrlv), yank ( y), przejdź na koniec kodu blokuj i wklej.
źródło