2013-10-05 64 views
0

我想出了兩種方法來使剪貼板或多或少的工作,但他們都沒有做到我想要的。我想要的是一種複製和粘貼到剪貼板的方法,但只有當我明確地告訴vim這樣做時。在vim中使用設置剪貼板?

默認情況下,我可以使用"*p從系統剪貼板進行粘貼,但是我無法找到一種方法在未設置其他選項的情況下寫入它。如果我那麼這將允許我使用"+yf)例如將文本插入剪貼板。不過,我寧願使用同一個寄存器來讀寫。據我所知,*寄存器只能讀取,而+寄存器只能寫入。 (除非我設置了guioptions=a ...,它具有自動複製視覺選擇的文本的副作用,這不是我想要的,所以它不寫。)

解決方案似乎更接近以做我想做的事情是

:set clipboard=unnamedplus

然而,這樣做的問題是,現在無名寄存器是我的剪貼板,所以每當我做xdd我重寫我的系統剪貼板。我可以通過在我想使用它之前和之後設置和取消設置來控制此操作,但這不可能是最佳解決方案。

有沒有一種方法可以將剪貼板設置爲相當於unnamedplus,但是對於已命名的寄存器呢?我試過set clipboard="*,:set clipboard="*+,:set clipboard="*plus,:set clipboard="0,"0plus"0+,但都無濟於事。我也嘗試省略",但返回了一個錯誤。

我使用Vi IMproved 7.3(包含修補程序1-547;由[email protected]修改; 由buildd @編譯)我的操作系統是Ubuntu 13.04。

回答

3

您對剪貼板寄存器有幾個誤解。閱讀:help x11-selection瞭解"*"+之間的差異。

基本上,"*寄存器表示當前選擇,例如,當您用鼠標標記文本(在終端中)時。此外,"+寄存器對應於剪貼板,即您通常使用Ctrl + C和Ctrl + V訪問的內容。 MS Windows只有後者,在Linux/X11上,這些是兩個單獨的概念。也許這讓你感到困惑。是的,你既可以在Vim中讀寫,也可以同時讀寫(Vim的剪貼板支持功能正常,它應該使用默認的Ubuntu軟件包)。