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-gtk
mit +xterm_clipboard
Unterstützung.
Antwort1
(Bearbeiten: April 2024) Mit der neuesten Version WSL version: 2.1.5.0
von scheint es zumindest bei den neuesten Microsoft Store-Versionen von Ubuntu auszureichen , Win11
einfach nur zu haben .set clipboard+=unnamedplus
neovim
(Bearbeiten: Oktober 2020) Für die 2-Wege-Zwischenablage neovim
verwende ichwin32yank
seit mehreren Monaten ohne Probleme. Fügen Sie es win32yank.exe
irgendwo 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.
.vimrc
Tragen 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:
- InstallierenVcXsrv (wenn es nach der Installation startet, stoppen Sie es).
- Starten Sie es mit dem neu installierten ProgrammXLaun(Suche im Startmenü).
Wählen Sie alle Standardoptionen und stellen Sie sicher, dassZwischenablageoptionenwerden geprüft.
Speichern Sie zum Abschluss die Konfiguration in einer Datei
config.xlaunch
(verwenden Sie dies, um es von nun an zu starten).Fügen Sie „export“
DISPLAY=localhost:0.0
in Ihre.bashrc
Bash für Windows ein und führen Sie essource ~/.bashrc
in einem beliebigen geöffneten Terminal aus.Stellen Sie sicher, dass vim mit Zwischenablageunterstützung installiert ist.
vim --version | grep clipboard
sollte lauten+clipboard
, nicht-clipboard
. Auch wenn Sie den Befehl ex:echo has('clipboard')
in vim ausführen und es heißt,0
dass die Zwischenablageunterstützung nicht einkompiliert ist.Wenn Sie keine Zwischenablageunterstützung haben, installieren Sie ein mit Zwischenablageunterstützung kompiliertes Vim-Paket, z. B.
apt-get install vim-gtk
."*p
Jetzt können Sie über und auf die Windows-Systemzwischenablage zugreifen"*y
oder diese durch Einfügenset clipboard=unnamed
Ihrer.vimrc
Datei als Standard festlegen.
AlsAbonnierenerwähnt, dass Sie jetzt auch die Windows-Zwischenablage von Remotecomputern mithilfe der SSH-X-Weiterleitung verwenden können sollten.
Antwort3
Antwort4
Wenn Sie vim (oder neovim) verwenden, sollten Sie vielleicht wissen, ANSI OSC52
dass 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.