VIM Strg-V Konflikt mit Windows Paste

110

Ich verwende VIM in Windows. Das Problem ist, dass ich CtrlVals visuellen Modus verwenden möchte . Dieser Schlüssel hat jedoch einen Konflikt mit Windows Paste. Wie kann ich diesen Schlüssel auf den visuellen VIM-Modus zurücksetzen, anstatt ihn einzufügen? Ich ziehe es vor, dies in meiner _vimrc-Konfigurationsdatei festzulegen.

David.Chu.ca
quelle

Antworten:

145

Aus der VIM-Dokumentation :

Da CTRLVzum Einfügen verwendet wird, können Sie damit keine blockweise visuelle Auswahl starten. Sie können CTRLQstattdessen verwenden. Sie können auch CTRLQim Einfügemodus und im Befehlszeilenmodus verwenden, um die alte Bedeutung von zu erhalten CTRLV. Funktioniert CTRLQ jedoch nicht für Terminals, wenn sie für den Kontrollfluss verwendet werden.

Alex
quelle
2
Ich mag das besser als mit _vimrc herumzuspielen. Es funktioniert sofort und da es unwahrscheinlich ist, dass ich in Zukunft an seriellen Terminals bin, ist die Flusssteuerung Strg-S / Strg-Q kein Problem.
Michael Dillon
Unter Linux (Gnome-Terminal) fand ich es besser, STRG-K CR zu verwenden , aber ich fand diese Antwort zuerst.
Jalanb
3
Aus irgendeinem Grund musste ich den ShiftSchlüssel für die visuelle Auswahl unter Windows verwenden, während ich dies unter Linux nicht tat.
stevesliva
1
Vielen Dank user132014! Ich finde, dass Sie h, j, k und l verwenden müssen, um mit Strg-Q im visuellen Blockmodus zu navigieren. Dies ist beim gVim-Editor für Windows der Fall. Die Pfeile scheinen in gVim für Windows nicht zu funktionieren, wenn ich mit Strg-Q im visuellen Blockmodus navigiere.
Ratnesh Chandna
3
@RatneshChandna - ShiftZusammen mit den Pfeilen verwenden? Ich sehe das gleiche Verhalten, habe aber irgendwie entdeckt, dass es Shiftfunktioniert hat. Ich wusste nicht, dass h / j / k / l funktioniert.
stevesliva
40

Überprüfen Sie Ihre _vimrc-Datei und prüfen Sie, ob sie mswin.vim enthält. Dieses Skript ordnet das ^ v der Einfügung zu. Sie können diese Zeile entweder in Ihrer _vimrc-Datei entfernen oder die Zuordnungsbefehle direkt in mswin.vim deaktivieren.

Machen Sie eine: Hilfe, um sich auf vim zu verhalten, um weitere Informationen zu erhalten.

jop
quelle
24

Der visuelle Modus (und andere Dinge), die wie in Unix funktionieren, erfordert sowohl JOPs als auch Windows Programmer-Vorschläge.

Gehen Sie in GVim unter Windows zum Bearbeitungsmenü, klicken Sie auf Starteinstellungen und kommentieren Sie den Windows-spezifischen Müll aus (mithilfe des vimrc-Kommentarzeichens, bei dem es sich um ein doppeltes Anführungszeichen handelt). Die mswin.vim Datei ist , wo die ctrl- vÜberschreibung angegeben wird, und die behave mswin Option macht es so , dass die Pfeiltasten nicht nur Bewegung gelten wie man es erwarten würde (es ändert sich auch mit der Maus Auswahlverhalten).

"source $VIMRUNTIME/mswin.vim
"behave mswin

Ich füge dort auch gerne ein Farbschema mit schwarzem Hintergrund hinzu, damit es eher so aussieht, wie ich es in einem Terminal sehen würde (und weil ein heller Hintergrund auf Papier großartig ist, aber auf einem hintergrundbeleuchteten Bildschirm schrecklich): colorscheme koehler

dannysauer
quelle
20

Wenn diese Zeile in Ihrem _vimrc Sie stört:

behave mswin

Löschen Sie dann diese Zeile.

Windows-Programmierer
quelle
14

Ich bevorzuge überall die gleichen Tastenanschläge, daher verwende ich diese in meiner .vimrc, um mswin.vim zu überschreiben:

if has('win32')
  " Avoid mswin.vim making Ctrl-v act as paste
  noremap <C-V> <C-V>
endif
rshdev
quelle
7

Ich bin mir nicht sicher, ob Sie viel dagegen tun können. Sie können jedoch CtrlQstattdessen verwenden.

Starkii
quelle
4

Die Kombination aus den Ratschlägen von jop (Suche nach mswin.vim in der Standarddatei _vimrc) und den Ratschlägen von "Windows-Programmierern" (die Zeile "mswin verhalten") wurde für mich wie ein Zauber gewirkt.

(Mein Repräsentant ist zu niedrig, um sie abzustimmen oder zu kombinieren - jemand räumt das für mich auf, oder ich komme wieder, sobald mein Repräsentant höher ist.)

Rick Reynolds
quelle
3
Mit anderen Worten, haben Sie versucht, einen Kommentar zu hinterlassen?
Christopher Bottoms
1
Heh, ich bin ein seltener Stackoverflow-Benutzer (daher mein geringer Ruf)
Rick Reynolds