Windows-Subsystem Linux – VIM die Zwischenablage verwenden lassen?

Windows-Subsystem Linux – VIM die Zwischenablage verwenden lassen?

Um das jetzt gleich klarzustellen und Verwirrungen zu vermeiden ... Dies gilt für Linux, das unter Windows 10 (Ubuntu) läuft, auch bekannt als WSL. Es ist nicht dasselbe wie Cygwin und Windows oder Standalone-Linux. Es ist ein ganz eigenes Biest.

Behalten Sie das oben Gesagte also bitte im Hinterkopf, bevor Sie auf alle Artikel verweisen, die ich bereits gelesen habe, oder kommentieren, dass dies bereits zuvor gefragt wurde.

Weiß jemand, wie man das Kopieren und Einfügen aus der Windows-Zwischenablage ODER der WSL Ubuntu Linux-Emulation zum Laufen bringt? Ich verwende set clipboard=unnamedplus. Es funktioniert nicht, egal welche Kombinationen ich verwende, wie yy, "+yy, usw.

Ja, es ist vim-gtkmit +xterm_clipboardUnterstützung.

Antwort1

(Bearbeiten: April 2024) Mit der neuesten Version WSL version: 2.1.5.0von scheint es zumindest bei den neuesten Microsoft Store-Versionen von Ubuntu auszureichen , Win11einfach nur zu haben .set clipboard+=unnamedplusneovim

(Bearbeiten: Oktober 2020) Für die 2-Wege-Zwischenablage neovimverwende ichwin32yankseit mehreren Monaten ohne Probleme. Fügen Sie es win32yank.exeirgendwo in Ihren Pfad unter Linux ein (irgendwo sollte in Ordnung sein) und fügen Sie Folgendes zu Ihrem hinzu init.vim.

set clipboard+=unnamedplus
let g:clipboard = {
          \   'name': 'win32yank-wsl',
          \   'copy': {
          \      '+': 'win32yank.exe -i --crlf',
          \      '*': 'win32yank.exe -i --crlf',
          \    },
          \   'paste': {
          \      '+': 'win32yank.exe -o --lf',
          \      '*': 'win32yank.exe -o --lf',
          \   },
          \   'cache_enabled': 0,
          \ }

(Ursprüngliche Antwort) Wenn Sie nur von VIM zu Windows wechseln möchten, für WSL2 und Ubuntu 20.04,diese Antwortauf Reddit hat bei mir mit Standard-VIM und Standard-WSL2-Ubuntu perfekt funktioniert.

.vimrcTragen Sie in Ihre (zum Beispiel ganz unten) folgendes ein :

" WSL yank support
let s:clip = '/mnt/c/Windows/System32/clip.exe'  " change this path according to your mount point
if executable(s:clip)
    augroup WSLYank
        autocmd!
        autocmd TextYankPost * if v:event.operator ==# 'y' | call system(s:clip, @0) | endif
    augroup END
endif

Antwort2

Diese Lösunghat bei mir funktioniert, danke an den GitHub-BenutzerAbonnieren.

Der Vollständigkeit halber hier ein Auszug aus seiner Antwort:

  1. InstallierenVcXsrv (wenn es nach der Installation startet, stoppen Sie es).
  2. Starten Sie es mit dem neu installierten ProgrammXLaun(Suche im Startmenü).
  3. Wählen Sie alle Standardoptionen und stellen Sie sicher, dassZwischenablageoptionenwerden geprüft.

  4. Speichern Sie zum Abschluss die Konfiguration in einer Datei config.xlaunch(verwenden Sie dies, um es von nun an zu starten).

  5. Fügen Sie „export“ DISPLAY=localhost:0.0in Ihre .bashrcBash für Windows ein und führen Sie es source ~/.bashrcin einem beliebigen geöffneten Terminal aus.

  6. Stellen Sie sicher, dass vim mit Zwischenablageunterstützung installiert ist. vim --version | grep clipboardsollte lauten +clipboard, nicht -clipboard. Auch wenn Sie den Befehl ex :echo has('clipboard')in vim ausführen und es heißt, 0dass die Zwischenablageunterstützung nicht einkompiliert ist.

  7. Wenn Sie keine Zwischenablageunterstützung haben, installieren Sie ein mit Zwischenablageunterstützung kompiliertes Vim-Paket, z. B. apt-get install vim-gtk.

  8. "*pJetzt können Sie über und auf die Windows-Systemzwischenablage zugreifen "*yoder diese durch Einfügen set clipboard=unnamedIhrer .vimrcDatei als Standard festlegen.

AlsAbonnierenerwähnt, dass Sie jetzt auch die Windows-Zwischenablage von Remotecomputern mithilfe der SSH-X-Weiterleitung verwenden können sollten.

Antwort3

Sie können mit der rechten Maustaste auf das Terminal klicken und dann im Optionsfeld STRG + UMSCHALT + C/V aktivieren, um Kopier- und Einfügevorgänge über das Terminal durchzuführen.

WSL Ubuntu Terminal

Antwort4

Wenn Sie vim (oder neovim) verwenden, sollten Sie vielleicht wissen, ANSI OSC52dass es sich dabei um einen Standard handelt, der versucht, dieses „Kopieren/Einfügen“-Problem zu lösen (in bestimmten Fällen, z. B. in einem SSH-Terminal).

Dann ist hier ein nützliches Pluginvim-oscyankdas diesen Standard implementiert und was Sie tun müssen, ist nur dieses Plugin zu installieren und eine Tastenbelegung dafür festzulegen. Sie sollten es auf jeden Fall ausprobieren.

verwandte Informationen