為了現在就解決這個問題並避免任何混淆...這是針對在 Windows 10(ubunutu) 中運行的 Linux,也稱為 WSL。它與 cygwin 和 windows 或獨立的 linux 不同。它是它自己的野獸。
因此,在我引用我已經讀過的所有文章或評論之前曾問過的問題之前,請記住上述內容。
有誰知道如何在 Windows 剪貼簿或 WSL Ubuntu Linux 模擬中進行複製和貼上工作?我正在使用 set clipboard=unnamedplus
。無論我使用什麼組合,如yy
、"+yy
等,它都不起作用。
是的,這是vim-gtk
有+xterm_clipboard
支持的。
答案1
(編輯:2024 年 4 月)有了最新的版本,WSL version: 2.1.5.0
現在似乎就足夠了,至少對於最新的 Microsoft Store 版本的 Ubuntu 來說是這樣。Win11
set clipboard+=unnamedplus
neovim
(編輯:2020 年 10 月)對於 上的 2 向剪貼板neovim
,我一直在使用win32yank
幾個月沒有任何問題。將其放在win32yank.exe
Linux 上的路徑中的某個位置(任何位置都可以),然後將以下內容新增至您的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,
\ }
(原始答案)如果您只想從 VIM 拉到 Windows,對於 WSL2 和 Ubuntu 20.04,這個答案Reddit 上的標準 VIM 和標準 WSL2 Ubuntu 非常適合我。
將以下內容放入您的.vimrc
(例如,在底部):
" 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
答案2
為了完整起見,這是他的回答的摘錄:
- 安裝VcXsrv (如果安裝後啟動,請將其停止)。
- 使用新安裝的程式啟動它XL啟動(在開始功能表中搜尋)。
使用所有預設選項,並確保剪貼簿選項被檢查。
最後,將配置儲存到文件中,
config.xlaunch
(從現在開始用它來啟動它)。將導出放入Windows 的 bash
DISPLAY=localhost:0.0
中並在任何開啟的終端機中執行。.bashrc
source ~/.bashrc
確保使用剪貼簿支援安裝 vim。
vim --version | grep clipboard
應該說+clipboard
,不是-clipboard
。另外,如果你:echo has('clipboard')
在 vim 中執行 ex 指令,它會說它0
沒有編譯剪貼簿支援。如果您沒有剪貼簿支持,請安裝使用剪貼簿支持編譯的 vim 包,例如
apt-get install vim-gtk
."*p
現在您可以透過和存取 Windows 系統剪貼簿"*y
,或透過放入檔案將其設定為預設set clipboard=unnamed
值.vimrc
。
作為羅比耶夫提到您現在也應該能夠透過 SSH X 轉送從遠端電腦使用 Windows 剪貼簿。
答案3
答案4
如果您正在使用 vim(或 neovim),也許您應該知道ANSI OSC52
這是一個嘗試解決此「複製/貼上」問題的標準(在特定情況下,例如在 SSH 終端中)。
然後這是有用的插件vim-oscyank它實現了這個標準,你所要做的就是安裝這個插件並為其設定一個鍵映射。你絕對應該嘗試一下。