SZYBKIE PODSUMOWANIE ODPOWIEDZI: Podam tutaj odpowiedź w prostej formie. Jest tyle komentarzy, że ten wątek tonie. 1) Sprawdź, czy masz włączony + visualextra w swojej wersji Vima, wpisując: ver w Vimie. 2) Wstawiasz, najpierw zaznaczając rzeczy, które chcesz edytować, a następnie naciskając I (duże i) - małe litery nie będą działać. 3) Kiedy to zrobisz, może wyglądać, jakbyś wstawiał tylko w pierwszym wierszu, ale kiedy skończysz, naciśnij ESC i j, a tekst zostanie skopiowany do innych wierszy. Tak to jest dla mnie.
Zeth,
Odpowiedzi:
203
Spróbuj tego
Po zaznaczeniu bloku tekstu naciśnij Shift+ ilub wielką literę I.
Małe litery inie będą działać.
Następnie wpisz żądane rzeczy i na koniec, aby zastosować je do wszystkich linii, naciśnij Escdwukrotnie.
Jeśli to nie zadziała ...
Sprawdź, czy +visualextrawłączyłeś w swojej wersji Vima.
Możesz to zrobić, wpisując :veri przewijając listę funkcji. (Możesz skopiować i wkleić go do bufora i przeprowadzić wyszukiwanie przyrostowe, ponieważ format jest nieparzysty).
Włączenie go jest poza zakresem tego pytania, ale jestem pewien, że możesz go gdzieś znaleźć.
Musisz także nacisnąć klawisz Escape, aby wyjść z trybu wstawiania, zanim tekst zostanie zduplikowany.
Brandon Joyce
19
Czy ktoś kiedykolwiek widział, że to nie działa? Mam niezmodyfikowaną konfigurację vima na CentOS. Wciskam ctrl + v, wciskam ja kilka razy i widzę, jak kursor podświetla pierwszy znak kilku wierszy. Naciskam Shift + i. Kursor zostaje przeniesiony do pierwszego znaku pierwszej linii, ale wracam do normalnego trybu. Wiem o tym, ponieważ jeśli naciśnę „a”, przesunie znak w prawo i mówi „- WSTAW -”. Jeśli wpiszę kilka znaków i naciśnę klawisz Escape, nie zostanie to zastosowane do pozostałych wierszy.
Tyler Collier
2
@TylerCollier Mam problem z Ubuntu 14.04 na digitalocean. Prosimy o komentarz, jeśli znalazłeś rozwiązanie.
Zack Burt
2
@ZacharyBurt Domyślny vim zainstalowany z Ubuntu 14.04 (zainstalowany jako vi) nie zawiera tej visualextrafunkcji, więc wstawianie bloków nie będzie tam działać. sudo apt-get install vimwprowadza bardziej w pełni funkcjonalną wersję, na której visualextrajest aktywowana. @TylerCollier Może to być ten sam problem w przypadku instalacji CentOS: sprawdź dane wyjściowe, vim --versionaby zobaczyć pełną listę aktywowanych funkcji.
Gabriel Grant
41
naciśnij ctrl i v // start select
naciśnij Shift i I //, a następnie wpisz dowolny tekst
naciśnij klawisz esc esc // naciśnij dwukrotnie klawisz esc
Po naciśnięciu ctrl + vmożesz nacisnąć, jaby szybko wybrać linię (linie) poniżej bieżącej pozycji lub nacisnąć, kaby szybko wybrać linię (linie) powyżej bieżącej pozycji. Możesz także użyćshift klawisza z błędami uplub, downaby dokonać wyboru.
tyler.frankenstein
1
Ze wszystkich odpowiedzi tylko ta zadziałała. Jestem na komputerze Mac, używając instalacji napar
Daniel Kaplan,
Byłem sędzią od lat, że nie mogę łatwo i nsert (jak c mień) w bloku wyboru. Więc to z dużym kapitałem i, jestem zdumiony. Używałem :normal iINPUT<CR>do wprowadzania na początku wierszy. Wielkie dzięki za to!
Tim Visée
Myślę, że nie musisz dwukrotnie naciskać klawisza esc. Jeśli naciśniesz cokolwiek po klawiszu esc, tekst zostanie automatycznie zaktualizowany. Jeśli nie, zrobi to w mniej więcej pół sekundy.
Shahbaz
29
Możesz również mieć przypadek użycia, w którym chcesz usunąć blok tekstu i zastąpić go.
Lubię to
Hello World
Hello World
Możesz wizualnie wybrać blok przed „W” i nacisnąć Shift+ i- Wpisz „Cool” - Hit, ESCa następnie usuń „Świat”, wybierając wizualny blok.
Alternatywnie, fajniejszym sposobem na zrobienie tego jest po prostu wizualne zablokowanie zaznaczenia „Świat” w obu wierszach. Wpisz cdlachange . Teraz jesteś w inserttrybie. Włóż żądane rzeczy i uderz ESC. Oba są odzwierciedlane przy mniejszych naciśnięciach klawiszy.
Odpowiedzi:
Spróbuj tego
Po zaznaczeniu bloku tekstu naciśnij Shift+ ilub wielką literę I.
Małe litery inie będą działać.
Następnie wpisz żądane rzeczy i na koniec, aby zastosować je do wszystkich linii, naciśnij Escdwukrotnie.
Jeśli to nie zadziała ...
Sprawdź, czy
+visualextra
włączyłeś w swojej wersji Vima.Możesz to zrobić, wpisując
:ver
i przewijając listę funkcji. (Możesz skopiować i wkleić go do bufora i przeprowadzić wyszukiwanie przyrostowe, ponieważ format jest nieparzysty).Włączenie go jest poza zakresem tego pytania, ale jestem pewien, że możesz go gdzieś znaleźć.
źródło
A
też!vi
) nie zawiera tejvisualextra
funkcji, więc wstawianie bloków nie będzie tam działać.sudo apt-get install vim
wprowadza bardziej w pełni funkcjonalną wersję, na którejvisualextra
jest aktywowana. @TylerCollier Może to być ten sam problem w przypadku instalacji CentOS: sprawdź dane wyjściowe,vim --version
aby zobaczyć pełną listę aktywowanych funkcji.źródło
ctrl + v
możesz nacisnąć,j
aby szybko wybrać linię (linie) poniżej bieżącej pozycji lub nacisnąć,k
aby szybko wybrać linię (linie) powyżej bieżącej pozycji. Możesz także użyćshift
klawisza z błędamiup
lub,down
aby dokonać wyboru.i
, jestem zdumiony. Używałem:normal iINPUT<CR>
do wprowadzania na początku wierszy. Wielkie dzięki za to!Możesz również mieć przypadek użycia, w którym chcesz usunąć blok tekstu i zastąpić go.
Lubię to
Możesz wizualnie wybrać blok przed „W” i nacisnąć Shift+ i- Wpisz „Cool” - Hit, ESCa następnie usuń „Świat”, wybierając wizualny blok.
Alternatywnie, fajniejszym sposobem na zrobienie tego jest po prostu wizualne zablokowanie zaznaczenia „Świat” w obu wierszach. Wpisz cdla
change
. Teraz jesteś winsert
trybie. Włóż żądane rzeczy i uderz ESC. Oba są odzwierciedlane przy mniejszych naciśnięciach klawiszy.źródło
ESC
a cała zaznaczona linia pokaże znak, który wpisujesz.jeśli chcesz dodać nowy tekst przed lub po wybranej kolumnie:
źródło
jj
propagowanie zmian we wszystkich poniższych wierszach było ostatnim elementem, którego mi brakowało!jj
jest zabójcą!