2009-09-03 90 views
1

我很頭疼,想知道爲什麼vim沒有複製到系統緩衝區。Vim複製粘貼到系統緩衝區沒有像預期的那樣運行

這是我的工作流程:

vim asd 
y1y 
:q 
vim qwe 
p 

在computerA和computerB,這個工程,我希望它:從文件ASD猛拉線投入該文件QWE。

在computerC上,這不起作用。

所有系統都運行Ubuntu 8.04。 computerA安裝了vim-full軟件包,computerB和computerC安裝了vim軟件包。 computerA安裝了xorg,正在使用fluxbox窗口管理器,並在本地進行訪問。 computerB和computerC沒有X,而我正在對他們兩個進行研究。

我已經做了很多的閱讀,並認爲這是因爲computerC與-clipboard編譯,但是我跑了所有三臺計算機的vim --version只有computerA與+剪貼板編譯。

我錯過了一些明顯的東西嗎?我相信用戶的.vimrc和全局vimrc文件是一樣的。如果可以幫助,我可以發佈vim --version的輸出和vimrc文件的內容。

回答

5

的Vim在默認情況下不會複製到系統緩衝區。記住內容的唯一方法是如果vim的多個實例使用相同的.viminfo文件。這有可能是在.viminfo文件不被寫入由於文件權限或由於'viminfo'(選擇)不同的設置。

有關的viminfo配置的詳細信息,請參閱

:help 'viminfo' 

要查看每臺計算機上當前配置,這樣做:

:set viminfo? 

順便說一句,如果你想使用該系統剪貼板(必須存在,所以你需要做的ssh -X),你可以使用:

:set clipboard+=unnamed 

然後所有的複製和粘貼操作將使用X11選擇緩衝區。當然,你需要用VIM爲+clipboard這個工作編譯,所以它不會解決你眼前的問題。參見:

:help 'clipboard' 

欲瞭解更多信息。

也許你可以在每臺計算機上發佈以下結果?

:set viminfo? 
:set clipboard? 

這會幫助我們更詳細地診斷問題。莫非你也試試:

vim asd 
"ayy 
:q 
vim qwe 
"ap 

這將使用登記a,而不是無名寄存器。

+0

謝謝艾爾,你是對的。 〜/ .viminfo被root擁有:root - 我第一次使用vim時必須有sudoed或者什麼?正在用系統剪貼板吠叫錯誤的樹,感謝您的答案和新知識! – nfm 2009-09-04 06:56:22

+0

Al的解決方案讓我有一天 – lucapette 2011-02-16 17:14:50

+0

您提到了剪貼板,這是當文本高光時,或者當您單擊鼠標中鍵時使用的。你知道系統剪貼板被稱爲什麼嗎?我基本上想做'設置sysClipboard + =未命名' – puk 2012-01-06 12:23:12

1

採取.viminfo 看看你拷貝的最後一件事是喜它應該包含:

寄存器:

「」 0線0 喜

可能是文件權限搞亂向上?

+0

謝謝蒂莫西,文件權限確實是borked! – nfm 2009-09-04 06:56:59

-1

試試這個:

set clipboard=unnamed 

它允許複製和粘貼通過系統剪貼板。

+1

OP聲明只有computerA是用+剪貼板編譯的,所以這對computerB或computerC不起作用。 – DrAl 2009-09-03 10:05:32

0

它不完全解決您的問題,而是一個完全正常的解決方法是

vim asd 
y1y 
:sp qwe 
p 
:q 

將打開asd,並從它(顯然)抽出,然後分割開qweput您剛剛抽出的項目,然後關閉分割打開的文件。通過這種方法,您無需關閉正在開發Vim的新實例的文檔。

如果您不喜歡水平分割,:vsp會進行垂直分割,這有時會更容易讀取/使用。

+0

此外,':tabn qwe'使用該文件創建一個新選項卡,這更易於使用。 :gt&:gT切換選項卡,順便說一句。 – 2009-09-03 11:17:12

+0

':gT'和':gt'給了我E492(不是一個編輯器命令),但':tabn'(無參數)和':tabp'工作(使用Vim 7.2)。我通常更喜歡分割,因爲我可以同時看到兩個文檔。 – 2009-09-03 11:23:12

2

爲什麼不使用"+y"+p,他們的工作直接與系統的剪貼板緩衝區

vim asd 
"+y 
:q 
vim qwe 
"+p 
+1

-1:從原帖:「只有computerA是用+剪貼板編譯的」。因此,這隻能在computerA上運行(除非它恰好通過viminfo機制保存在未命名的註冊表中,OP已經聲明這種機制不起作用)。 – DrAl 2009-09-03 14:05:34

+0

這也是相當多的稅收http://stackoverflow.com/questions/8757395/can-vim-use-the-system-buffer-by-default – puk 2012-01-06 12:17:12

0

OK,我不知道的系統緩衝區的問題,但對於簡單地:e filename打開新文件,然後粘貼,然後保存並根據需要返回原始文件?是的,我知道,選項卡和分裂很酷,但簡單也可以完成這項工作。

您也可以使用ex,從目標文件讀取要通過提供行範圍的:r命令或從源文件附加選定文本(通過簡單行號/範圍或全能的g命令)與:w >> filename

相關問題