Vim: Jak wstawić w trybie Visual Block?


145

Jak możesz wstawiać, gdy jesteś w trybie blokowania wizualnego (naciskając ctrl-V) w Vimie?


4
możliwy duplikat VIM Blockwise Insert
Conner,

1
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źć.


13
Nie zapomnij Ateż!
jmdeldin

42
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
  1. naciśnij ctrl i v // start select
  2. naciśnij Shift i I //, a następnie wpisz dowolny tekst
  3. 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.

Hello Cool 
Hello Cool

ostatni krok jest dla mnie pomocny, musisz nacisnąć, ESCa cała zaznaczona linia pokaże znak, który wpisujesz.
Webb Lu

świetne rzeczy, to bardzo pomaga
prosti

9

jeśli chcesz dodać nowy tekst przed lub po wybranej kolumnie:

  • naciśnij ctrl + v
  • wybierz kolumny
  • naciśnij Shift + i
  • napisz swój tekst
  • naciśnij klawisz esc
  • naciśnij „jj”

2
Dziękuję, jjpropagowanie zmian we wszystkich poniższych wierszach było ostatnim elementem, którego mi brakowało!
kilogika

jjjest zabójcą!
Anh Tran
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.