2010-09-09 69 views
9

即時嘗試從一個文件複製300行到另一個文件, 我輸入「300yy」,它說它已經抽出了300行。vim限制行內存

轉到目標文件並按p, 它粘貼,但只有前50行。

任何想法爲什麼它不粘貼300?

+1

'echo @「'回顯所有行?你如何去目標文件(在這個vim實例,或如果你想在vim會話中保存這300行代碼,那麼你需要按照@eugene y的建議修改你的viminfo變量(儘管你應該刪除字符串的',<100'和',s10'部分)。在我的vim中,在一個vim會話中移動了2800行,效果很好。 – ZyX

+0

請粘貼您的版本信息。 – ZyX

+1

im vim 7。2,刪除,<100和,S10做了詭計。 –

回答

14

正如Vim Tips Wiki建議,可以調整viminfo設置:

:set viminfo? 
:set viminfo='100,<1000,s100,h 

什麼的各個位的含義:

  • '100標記將被人們記住的最後100頁編輯的文件。
  • <1000將每個寄存器保存的行數限制爲1000行;如果寄存器包含1000條以上的行,則只保存前1000行。
  • s100跳過超過100 KB的文本的寄存器。
  • h Vim啓動時禁用搜索高亮顯示。
+1

你知道那些'100,<100,s10,h行是什麼意思嗎? –

+3

@Hermann:只需運行vim –

+0

中的':help'viminfo'命令即可解決這些問題。 –

4

保持在同一個會話中(打開新文件:e路徑),你不會有任何限制。

8

正如尤金和ZYX所述調整你的viminfo將是最簡單的解決方案

:set viminfo-=<50,s10

一種替代的解決方案是使用:read和/或:write

要從文件name.txt在讀進入當前緩衝區

:read file-name.txt

要附加第1行的範圍內,從當前緩衝線300到文件到append.txt

:1,300write >> file-to-append.txt

還可以使用標記的,而不是行號,如可視標記

:'<,'>write >> file-to-append.txt

當然,追加可能無法實現您的viminfo更改可能效果最好的用例。

:help :write 
:help :read 
:help 'viminfo' 
:help :set-= 
+0

從vi切換到vim之前我設置了下面的縮寫(不記得我爲什麼用ab而不是map):'cab wbf w! 〜/ .lastbuffer'和'rbf r〜/ .lastbuffer'分別寫入和讀取相同的文件。然後只需執行':wbf'和':rbf' – mb14

3

嘗試vim -p file1 file2。它打開每個文件到一個新的標籤(這是真棒),並且它解決了複製/粘貼限制

+0

我已經解決了這個問題,但沒有強制任何新的行爲,但是謝謝。 –

+0

謝謝!這真的很有幫助。 –