Wie mache ich das Ausschneiden / Kopieren / Einfügen in GVim auf Ubuntu mit Strg + X, Strg + C, Strg + V?

41385
pcapademic

Standardmäßig sind die Abkürzungen zum Ausschneiden / Kopieren / Einfügen in GVim unter Ubuntu:

 Schneiden Sie "+ x" Kopieren Sie "+ y" Einfügen "+ gP 

Ich möchte Steuerschlüsselkombinationen in GVim verwenden, wie ich sie in Firefox und anderen Gnome-Anwendungen verwende. Wie kann ich GVim so konfigurieren, dass es wie andere Gnome-Apps funktioniert?

49
Um Konflikte mit den vim-Standardschlüsseln zu vermeiden, wählen Sie Strg + Umschalt + Taste anstelle von Strg + Taste Sheharyar vor 7 Jahren 0

4 Antworten auf die Frage

46
Ludwig Weinzierl

Fügen Sie Ihrem _vimrcoder die folgenden Zeilen hinzu.vimrc

source $VIMRUNTIME/mswin.vim behave mswin 

Aber Achtung, der visuelle Modus ist dann CTRL-Q anstelle von CTRL-V.

Eine Übersicht über die Funktionen von mswin.vim finden Sie im Quellcode von mswin.vim . Es ist sehr gut kommentiert und wenn ein Befehl unklar ist, können Sie ihn leicht in vims Hilfe nachschlagen.

Hier ein kurzer Überblick aus der Quelle:

  • Rücktaste und Cursortasten springen zur vorherigen / nächsten Zeile
  • CTRL-X und SHIFT-Del sind Cut
  • CTRL-C und CTRL-Insert sind Kopieren
  • STRG-V und UMSCHALT-Einfügen sind Einfügen
  • Verwenden Sie CTRL-Q, um das zu tun, was CTRL-V früher getan hat
  • Verwenden Sie zum Speichern CTRL-S, auch im Einfügemodus
  • STRG-Z ist Undo; allerdings nicht in cmdline
  • STRG-Y ist Wiederholen (obwohl nicht wiederholt); allerdings nicht in cmdline
  • Alt-Leertaste ist Systemmenü
  • STRG-A ist Alles auswählen
  • STRG-Tab ist das nächste Fenster
  • STRG-F4 ist Fenster schließen

Auf Nippysaurus 'Anfrage: Ich füge in .gvimrc folgendes ein, um Ctrl-V neben Paste im Menü anzuzeigen:

unmenu! Edit.Paste aunmenu Edit.Paste nnoremenu 20.360 &Edit.&Paste<Tab>Ctrl-V "+gP cnoremenu &Edit.&Paste<Tab>Ctrl-V <C-R>+ 

Ich habe es nicht gründlich getestet, nur eine kurze Überprüfung, ob es das tat, was ich erwartet hatte. Funktioniert für mich, hoffe es funktioniert für Sie ;-)

Ich verstehe und schätze die Punkte, die Manni und Peter Thorin in den Kommentaren von Peter Thorins Antwort gemacht haben. Ich nehme an, dass ich GVim unter Windows als Notizblock-Ersatz gelernt habe und weniger Reibung möchte. Danke, Ludwig pcapademic vor 14 Jahren 1
Gibt es eine Möglichkeit, den Text der Menüverknüpfung an die neuen Tastenkombinationen anzupassen? Nippysaurus vor 14 Jahren 2
@ Nippysaurus: Ich hatte es mit Menutrans in .gvimrc versucht. Habe es nicht zum Laufen gebracht, werde es abends noch einmal anschauen ... Ludwig Weinzierl vor 14 Jahren 0
@Nippysaurus: Zu meiner Antwort wurde eine mögliche Lösung hinzugefügt, siehe oben. Ludwig Weinzierl vor 14 Jahren 0
Damit verdient VIM eine zweite Chance! user1068352 vor 9 Jahren 0
Dies funktioniert jedoch nicht für ** GVim **, nur für Vim! Suncatcher vor 7 Jahren 0
Es sieht so aus, als hätte "mswin.vim" bereits einen Aufruf "benehmen mswin". Ist es notwendig, dies in meinem eigenen _vimrc erneut aufzurufen? Nathan Friend vor 7 Jahren 2
@NathanFriend Ditto. Es funktioniert auch ohne "Behave Mswin", zumindest auf meinem System mit Vim 8.0. Mikel vor 6 Jahren 1
44
Cogan

Wenn Sie möchten, dass Ausschneiden / Kopieren / Einfügen mit den Standard-Hotkeys funktioniert, Sie jedoch keine der anderen Konfigurationsoptionen in gvim ändern möchten, fügen Sie Folgendes hinzu ~/.vimrc.

vmap <C-c> "+yi vmap <C-x> "+c vmap <C-v> c<ESC>"+p imap <C-v> <C-r><C-o>+ 

Das Einfügen funktioniert nur im visuellen Modus und im Einfügemodus. Sie müssen sich also nicht um den Konflikt mit Strg-V und den blockweisen visuellen Modus kümmern. Dies ist kein Problem, da Sie mit Copy und Cut in den Einfügemodus versetzt werden, sodass Sie sofort danach einfügen können. Wenn Sie es ausprobieren, werden Sie feststellen, dass es sich völlig natürlich anfühlt.

Ich habe mir diese Konfiguration nach mehrmaligem Tweaking ausgedacht und finde es jetzt "perfekt". Wenn Sie mit Ihrer aktuellen Konfiguration zum Kopieren / Einfügen sogar ein bisschen unzufrieden sind, probieren Sie es aus und ich wette, Sie werden es lieben.

Genau das habe ich gesucht. Vielen Dank. Sean McCleary vor 12 Jahren 0
Nach einigen Versuchen und Rücksprache mit `: help i_ctrl-r_ctrl-o` entschied ich mich,` imap zu ändern "+ pa" an `imap + `; Dies funktioniert erwartungsgemäß, wenn sich der Cursor links vom ersten Zeichen einer Zeile befindet, und er ahmt das "Standard" -Verhalten am ehesten nach. Holger vor 11 Jahren 2
Ich denke über den Wechsel nach`Shift + Insert, das scheint viel schneller auf meinem Rechner zu sein. Aber mitten in einem Projekt und Sie möchten Vim jetzt nicht neu starten. Nur teilen Will vor 11 Jahren 0
Du bist großartig =) Yugal Jindle vor 10 Jahren 0
9
jtb

Wenn Sie das normale Verhalten von vim beibehalten möchten, aber auch die Verwendung der Systemzwischenablage weniger aufwendig zulassen, finden Sie weitere Informationen unter Zugriff auf die Systemzwischenablage . Wenn Sie gvim mögen die Zwischenablage als Standard - Puffer zu verwenden (so dass jeder x, y, pusw. Befehl verwendet die Zwischenablage) fügen Sie dann die folgende Zeile in vimrc:

set clipboard=unnamed 

Ich persönlich benutze die Puffer viel mehr innerhalb von vim als zwischen vim und dem System; Ich hätte also lieber eine etwas umständlichere Verknüpfung, als meine System-Zwischenablage ständig blockiert zu haben. Aber es ist schön, dass die Option für diejenigen da ist, die es vorziehen würden.

wow, das ist großartig, danke Hoto vor 8 Jahren 0
2
Peter Thorin

Ich denke, Sie können dies mit dem Befehl: imap hinzufügen (versucht es einfach mit Strg + X in Windows, was funktioniert hat, das Drücken von Strg + c scheint den Befehl jedoch abzubrechen, so dass Sie es möglicherweise in vimrc tun müssen).

:imap <C-X> "+x :imap <C-C> "+y  :imap <C-V> "+gP 

Wenn Sie es zu Ihrem ~ / .vimrc hinzufügen, müssen Sie lediglich das: vor dem imap entfernen.

Imap fügt die Bindungen nur im Einfügemodus hinzu. Daher möchten Sie möglicherweise nur die Karte oder etwas anderes ändern. Schauen Sie in :help mapmodeerfahren Sie mehr über Remapping und unmapping Sachen.

Viel Glück!

Dies sollte ein bisschen von dem Trick tun. Aber das ist eine schlechte Idee. Ctrl-V sollte in den visuellen Modus wechseln, Ctrl-C bricht alle Befehle ab. Und der Trick funktioniert nur auf Ihrem System. Auf einer anderen Maschine sind Sie verloren. innaM vor 14 Jahren 1
Ich stimme teilweise damit überein, dass dies eine schlechte Idee ist, ich würde sie nicht selbst verwenden wollen, aber wenn Sie nur ein gelegentlicher Benutzer von gvim sind, würden Sie die Bindungen, die Sie entfernen, wahrscheinlich nicht vermissen. Peter Thorin vor 14 Jahren 1
Warum verwenden Sie gvim überhaupt? Wie lange bleibst du ein gelegentlicher Benutzer? innaM vor 14 Jahren 1
Ich denke nicht, dass es eine so schlechte Idee ist. Leute sind an Strg + X usw. gewöhnt und es gibt Milliarden andere Gründe, vim zu verwenden. Ludwig Weinzierl vor 14 Jahren 2