vim沒有clipboard,沒法複製到系統剪下板,透過xclip將複製、刪除的內容放到系統剪下板

惠灰灰發表於2024-03-13

解決方法:確定你有xclip,如果沒有就sudo install xclip安裝一個,然後在/etc/vim/vimrc 或者 ~/.vimrc 中新增下面的命令

au TextYankPost * exe system("xclip -selection clipboard", @")

一開始遇到這個問題,網上的解決方案都是安裝一個超大的vim,這很不優雅,我喜歡小而高效的解決方案。
後來看到一個使用xclip的方案,這個方案用的是按鍵對映
vmap y y:call system("xclip -selection clipboard", @")<CR>
不知道為什麼,這個方案的<CR>並沒有起到回車的作用,但是,這條命令起作用了。我就順著這條命令繼續搜尋。
結果找到了使用windows自帶的clip.exe命令來控制系統剪下板內容的方法,不過這是用自動命令來實現的。這種方法更優雅!
我將兩者結合就是最終,在我看來比較好的解決方法。
話說回來,vim這個 autocommand 的作用非常大,我的解決方案裡。TextYankPost是指文字被刪除或複製,每次TextYankPost被觸發,名字元合 * 的檔案都會執行exe system("xclip -selection clipboard", @")
exe是vim執行命令,執行的內容是system這是使用shell命令的方法。("xclip -selection clipboard", @")這裡面是(shell命令,傳遞給shell命令的引數),這裡@“是指無名暫存器的內容,也可以用@0代替,0裡面放的最新複製的內容,”裡面放的是最新複製或刪除的內容。

相關文章