1103 Stimmen

Wie kann man Vim dazu bringen, aus der Zwischenablage des Systems einzufügen (und dorthin zu kopieren)?

Im Gegensatz zu anderen Editoren speichert vim kopierten Text in seiner eigenen Zwischenablage. Es ist also sehr schwierig für mich, einen Text von einer Webseite zu kopieren und ihn in die aktuelle Arbeitsdatei einzufügen. So kommt es, dass ich entweder gedit öffnen oder den Text manuell eintippen muss.

Kann ich vim dazu bringen, von und in die Zwischenablage des Systems einzufügen?

13voto

Ich habe die oben genannten Vorschläge ausprobiert, aber keiner von ihnen hat in meiner Umgebung funktioniert. (Windows PuTTY-Klon über ssh)

Weiteres Googeln ergab Folgendes: https://unix.stackexchange.com/questions/110684/copy-paste-into-sshd-vim-from-local-Windows-clipboard

In einem der Kommentare wurde vorgeschlagen SHIFT+INSERT was den Trick für das Einfügen aus der Zwischenablage meines Desktops in den Puffer von Vim erledigte. Ctrl-C funktionierte bereits, um von Vim aus in die Zwischenablage des Desktops zu kopieren.

11voto

s_signal Punkte 107

Diese Tastenkombinationen funktionieren auf jedem Betriebssystem.

Wählen Sie den Zieltext mit der Maus aus, und beachten Sie die Tastenfolgen zum Kopieren, Ausschneiden und Einfügen.

  • Kopie: Ctrl + Insert

  • Kleister: Shift + Insert

  • schneiden: Shift + Del

  • Kleister: Shift + Insert

9voto

chao Punkte 1635

Die einfachste Lösung dafür, die auch zwischen verschiedenen Linux-Maschinen funktioniert, ist ssh ist:

  1. Prüfen Sie, ob vim die X-11-Zwischenablage unterstützt: vim --version | grep clipboard . Wenn es sich zurückmeldet -clipboard y -xterm_clipboard sollten Sie entweder vim-gtk o vim-gnome (gvim auf arch linux)

  2. Fügen Sie die folgenden Zeilen in Ihr .vimrc :

set clipboard=unnamedplus
set paste
  1. Wenn Sie sich auf einem anderen Rechner über ssh anmelden, verwenden Sie die Option -Y: ssh -Y machine

Jetzt sollte das Kopieren und Einfügen genau wie erwartet auf einem einzelnen Rechner und über verschiedene Rechner hinweg funktionieren, indem man nur y für Yank und p für Paste. NB ändern .vimrc auf allen Rechnern, auf denen Sie diese Funktion nutzen möchten.

9voto

wisbucky Punkte 26902

Mit Vim 8+ auf Linux oder Mac können Sie jetzt einfach das betriebssystemeigene Einfügen ( ctrl+shift+V unter Linux, cmd+V auf Mac). Drücken Sie nicht i für den Einfügemodus.

Es fügt den Inhalt der Zwischenablage Ihres Betriebssystems ein, wobei die Leerzeichen und Tabulatoren erhalten bleiben, ohne dass eine automatische Einrückung hinzugefügt wird. Es ist äquivalent zum alten :set paste , i , ctrl+shift+V , esc , :set nopaste método.

Sie brauchen nicht einmal die +clipboard o +xterm_clipboard vim-Funktionen nicht mehr installiert. Diese Funktion wird "eingeklammertes Einfügen" genannt. Für mehr Details, siehe Ausschalten der automatischen Einrückung beim Einfügen von Text in Vim

8voto

Deepam Gupta Punkte 1684

Was bei mir unter Linux (Ubuntu 20.04) einfach funktioniert hat

  • Kopieren in die Systemzwischenablage:

    1. Wählen Sie im visuellen Modus aus, was Sie kopieren möchten.
    2. Typ "+y
    3. Presse Enter
  • Etwas aus der Zwischenablage des Systems einfügen:

    1. Gehen Sie zu der Stelle, an der Sie den kopierten Text in vim einfügen wollen.
    2. Tippen Sie einfach
      • "+P zum Einfügen vor dem Cursor ODER
      • "+p um nach dem Cursor einzufügen.

Mehr darüber, wie das funktioniert : Kopieren und Einfügen in/aus Vim von/zu anderen Programmen!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X