VIM Ctrl-V Konflikt z wklejaniem systemu Windows

110

Używam VIM w systemie Windows. Problem w tym, że chcę użyć CtrlVjako trybu wizualnego. Jednak ten klucz jest w konflikcie z wklejaniem systemu Windows. Jak mogę zresetować ten klucz z powrotem do trybu wizualnego VIM zamiast wklejania. Wolę ustawić to w moim pliku konfiguracyjnym _vimrc.

David.Chu.ca
źródło

Odpowiedzi:

145

Z dokumentacji VIM :

Ponieważ CTRLVjest używany do wklejania, nie możesz go użyć do rozpoczęcia blokowego zaznaczania wizualnego. Możesz użyć CTRLQzamiast tego. Możesz także użyć CTRLQw trybie wstawiania i trybie wiersza poleceń, aby uzyskać stare znaczenieCTRLV . Ale CTRLQ nie działa dla terminali, gdy jest używany do sterowania przepływem.

Alex
źródło
2
Podoba mi się to bardziej niż majstrowanie przy _vimrc. Działa natychmiast, a ponieważ w przyszłości prawdopodobnie nie będę na terminalach szeregowych, sterowanie przepływem Ctrl-S / Ctrl-Q nie stanowi problemu.
Michael Dillon,
W systemie Linux (terminal Gnome) stwierdziłem, że lepiej jest użyć CTRL-K CR , ale najpierw znalazłem tę odpowiedź.
jalanb
3
Z jakiegoś powodu musiałem użyć Shiftklawisza do wizualnego wyboru w systemie Windows, podczas gdy nie w Linuksie.
stevesliva
1
Dzięki user132014! Uważam jednak, że musisz używać h, j, k i l, aby nawigować w trybie bloku wizualnego za pomocą Ctrl-Q. Tak jest w przypadku edytora gVim dla Windows. Strzałki wydają się nie działać dla mnie w gVim dla Windows podczas nawigacji w trybie bloku wizualnego przy użyciu Ctrl-Q.
Ratnesh Chandna
3
@RatneshChandna - Używać Shiftrazem ze strzałkami? Widzę to samo zachowanie, ale w jakiś sposób odkryłem, że Shiftdziała. Nie wiedziałem, że h / j / k / l działa.
stevesliva
40

Sprawdź swój plik _vimrc i zobacz, czy źródła mswin.vim. Ten skrypt mapuje ^ v na wklej. Możesz usunąć tę linię z pliku _vimrc lub wyłączyć polecenia mapowania bezpośrednio w mswin.vim.

Aby uzyskać więcej informacji, wykonaj: help behave on vim.

jop
źródło
24

Tryb wizualny (i inne rzeczy) działający jak w Uniksie wymaga zarówno sugestii JOP, jak i programisty Windows.

W GVim na Windows przejdź do menu edycji, kliknij ustawienia uruchamiania i zakomentuj śmieci specyficzne dla systemu Windows (używając znaku komentarza vimrc, który jest podwójnym cudzysłowem). Plik mswin.vim jest miejscem, w którym określono opcję ctrl- voverride, a opcja behave mswin sprawia, że ​​klawisze strzałek nie wykonują ruchu tak, jak można by się tego spodziewać (zmienia również zachowanie podczas wybierania myszy).

"source $VIMRUNTIME/mswin.vim
"behave mswin

Lubię dodać tam również schemat kolorów czarnego tła, więc wygląda bardziej jak to, co widzę w terminalu (i ponieważ jasne tło jest świetne na papierze, ale okropne na podświetlanym ekranie): colorscheme koehler

dannysauer
źródło
20

Jeśli ta linia w twoim _vimrc sprawia ci kłopoty:

behave mswin

następnie usuń tę linię.

Programista Windows
źródło
14

Wolę wszędzie te same naciśnięcia klawiszy, więc używam tego w moim .vimrc, aby zastąpić mswin.vim:

if has('win32')
  " Avoid mswin.vim making Ctrl-v act as paste
  noremap <C-V> <C-V>
endif
rshdev
źródło
7

Nie jestem pewien, czy można wiele z tym zrobić. Możesz użyć CtrlQzamiast tego.

Starkii
źródło
4

Połączenie rady jopa (szukanie mswin.vim w domyślnym pliku _vimrc) i rady "programisty Windows" (pozbycie się wiersza "behave mswin") zadziałało dla mnie jak urok.

(mój reprezentant jest zbyt niski, aby głosować na nich lub je łączyć - ktoś to dla mnie posprząta, albo wrócę, gdy moja reputacja będzie wyższa)

Rick Reynolds
źródło
3
Innymi słowy, czy próbowałeś zostawić komentarz?
Christopher Bottoms
1
Heh, jestem rzadkim użytkownikiem
Rick Reynolds