我已經拿出了有關在gvim上使用系統剪貼板的信息,並指出在Windows和gvim應用程序之間共享「+」和「*」寄存器。當從Windows複製到gvim時,這些工作正常。當我從窗口複製文本時,兩個寄存器都被更新。將文本從gvim編輯器複製到系統剪貼板每個會話只能使用一次
但是,我面臨一個奇怪的問題,我第一次從gvim複製文本到「+」註冊它更新Windows系統剪貼板。當我在同一個gvim會話期間嘗試複製另一段文本時,它在gvim的「+」寄存器中更新,但複製的文本未反映在我的Windows系統剪貼板中。相反,最初複製的文本仍然保留。換句話說,在gvim會話期間,windows系統剪貼板值被鎖定到第一個複製的文本,並且此後從未更新過。
此問題也出現在「*」寄存器中。猛拉只是第一次。我懷疑這兩個寄存器之間有某種衝突。
有沒有人在gvim中遇到過問題,其中「+」或「*」寄存器被更新,但是粘貼在窗口中的文本與第一個被抽出的文本相同?當我在gvim中「+」註冊時,如何查看系統剪貼板是否已更新?
這不是一個解決方案,但爲了幫助您找出發生了什麼,您可以使用':reg +'和':reg *'命令來獲取緩衝區的內容。這可能是第一步,看看它是不是更新的緩衝區或不使用正確的緩衝區值的窗口。 – statox
@statox「當我在同一個gvim會話中嘗試複製第二段文本時,它在gvim的」+「寄存器中更新,但複製的文本未反映在我的Windows系統剪貼板中。什麼實際上會讓我的問題更加明朗是識別哪些寄存器與Windows系統剪貼板相匹配的一種方法。基於mMontu的回答,我懷疑它是否與x11剪貼板有關,但我沒有得到清晰的圖片。 – Ronyjoe
我可能是錯的,但我認爲x11在你的情況下是不相關的,因爲它是unix系統的圖形服務器,但它不存在於ms-windows(據我所知)。你可以試着把這個放在你的_vimrc中'set clipboard = unnamed'這樣unamed寄存器鏈接到你的系統剪貼板,這意味着你不必在''''前面加''*'來存取剪貼板。 (這不是我喜歡的解決方案,因爲unamed寄存器是非常靈活的,但這可能值得一試)。另外,因爲我從來沒有面對這個問題,不能再現它,我想不出其他解決方案。 – statox