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.