Während ich WSL / Bash für Windows verwende, möchte ich in der Lage sein, y
yy
3y
und p
immer so, wie sie immer in vim funktionieren, aber eine Verbindung zur System-Zwischenablage herstellen, die von allen Apps gemeinsam genutzt wird, nicht zur internen Zwischenablage von vim ... Ich habe bereits das Gleiche, um die Zwischenablage zu verwalten Geschichte.
Es scheint, dass Vim bereits eine integrierte Option zum Synchronisieren des Kopier- / Einfügepuffers mit der Systemzwischenablage hat ... Das Problem beim Ausführen von WSL ist jedoch, dass Sie tatsächlich verwenden müssen, um /mnt/c/Windows/System32/clip.exe
auf die Zwischenablage zuzugreifen ... Also, obwohl ich möchte verwenden können:
set clipboard^=unnamed
Es scheint noch keine WSL-Unterstützung zu haben.
Ich verstehe, dass der Neovim dies als Option hat, aber ich möchte jetzt nicht wirklich mit Neovim experimentieren ...
Im Moment kommt einer Problemumgehung, die ich gefunden habe, am nächsten:
nnoremap <silent> <leader>y :call system('/mnt/c/Windows/System32/clip.exe', @0)<CR>
vnoremap <silent> <leader>y :call system('/mnt/c/Windows/System32/clip.exe', @0)<CR>
Aber dies ist meiner Meinung nach eine wirklich schreckliche Lösung ... Es macht das Kopieren in zwei Schritten ...
Natürlich kann ich mit der Maus / Umschalt + Ins kopieren und einfügen, aber ich denke, es muss eine Möglichkeit geben, diese Synchronisation in Vim richtig zum Laufen zu bringen.
quelle
Antworten:
Ich bin mir bewusst, dass dies eine sehr alte Frage ist, aber ich habe kürzlich eine gute Lösung gefunden. Nach langem Frust stieß ich auf diese Möglichkeiten, durch Kopieren und Einfügen auf die Zwischenablage des Windows-Systems zuzugreifen.
Durch Kopieren mit der vim-Version> = 8.0.1394, wie in einer anderen Antwort angegeben: /vi//a/15190
Einfügen, Zuordnen zu gefälschten Registrierungsbefehlen, dh "= p oder" + p oder was auch immer.
Das Einfügen mit der rechten Maustaste funktioniert, ist jedoch unbefriedigend, wenn Sie die Maus nicht verwenden möchten
quelle
vi
ich hinzugefügtnnoremap <S-Insert> :r !powershell.exe -Command "& {Get-Clipboard}"<Enter>
Was ist damit?
uname
ist ein Linux-Terminalbefehl, der Betriebssysteminformationen zurückgibt, sodass erLinux
für die WSL zurückgegeben wird. Während mit-r
flag der Befehl Release-Informationen des Betriebssystems zurückgibt, sollte er "Windows" enthalten.TextYankPost
ist ein vim-Ereignis (siehe:h TextYankPost
invim
), das Ihre Text-Ruck-Aktivität erkennt.clip.exe
in WSL ist ein Befehl , der Windows - Eingabeaufforderung (sieheCLIP /?
in Eingabeaufforderung) , die Kopietext
von einem oder Rückkehrcommand
in clipbord übertext | clip.exe
odercommand | clip.exe
. Hierclip.exe
wird die Funktion vim by vim ausgeführtsystem
.quelle
has('wsl')
anstelle von verwendensystem('uname -r') =~ "Microsoft"
.Ich habe vor einiger Zeit eine PR für die WSL-Unterstützung für Fakeclips erstellt.
Siehe vimawesome auf , wie es zu installieren;
help fakeclip
zur Verwendung.quelle