昨天我的Macbook卡住了,當時我試圖將1200行80個字符粘貼到Vim。下載文件要快得多,而不要粘貼文本。爲什麼在Vim的插入模式下粘貼很長的一行很慢?
我認爲這個問題可能是原因,爲什麼互聯網運營商允許更慢的上傳比下載。
昨天我的Macbook卡住了,當時我試圖將1200行80個字符粘貼到Vim。下載文件要快得多,而不要粘貼文本。爲什麼在Vim的插入模式下粘貼很長的一行很慢?
我認爲這個問題可能是原因,爲什麼互聯網運營商允許更慢的上傳比下載。
如果你把它粘貼到終端窗口,Vim認爲你是用手輸入的,它會嘗試更新顯示器。您可以使用pbpaste
和pbcopy
命令來訪問你的剪貼板(在OS X),所以你可以做到這一點的Vim的:
:read !pbpaste
或在shell:
bash$ pbpaste | vim -
如果您正在使用GUI Vim中,你可以使用"*
寄存器粘貼(這是上下文菜單做什麼):
"*P <- in normal mode
粘貼到終端窗口通常是一個壞主意,儘量在可以的地方使用pbpaste
。
你試過粘貼模式嗎?設置粘貼/設置nopaste?
我不知道這是Mac問題還是其他問題,但我在Vim中粘貼這些文本沒有任何問題。我曾嘗試過在Windows和Linux上,並沒有看到任何問題。
我已經在Vim中成功編輯了幾百個megs(日誌文件)的文件(加載速度很慢,但是一旦文本被讀取,一切都很快)。
這不是一個MAC問題。 Ubuntu也是一樣的問題。 – 2009-02-01 20:55:17
請看,問題。我澄清了它。 – 2009-02-01 20:56:36
問題似乎在粘貼沒有輸入或空格的文本。 – 2009-02-01 20:59:33
如果您使用Apple終端,請嘗試其他終端,如iTerm。 有時候,「內置」終端對於常見任務並沒有真正的反應。不知道爲什麼......
但如果它是在網絡上,你應該嘗試:
:e http://link/to/file
然後,如果有必要將它保存爲本地文件。
如果是因爲重繪緩慢,看看該選項:
*'lazyredraw'* *'lz'* *'nolazyredraw'* *'nolz'*
'lazyredraw' 'lz' boolean (default off)
global
{not in Vi}
When this option is set, the screen will not be redrawn while
executing macros, registers and other commands that have not been
typed. Also, updating the window title is postponed. To force an
update use |:redraw|.
而且如果它是一個本地文件,然後將其粘貼是沒有必要的:儘量
:read file
代替。
這是「正常」。這很慢,因爲重繪數千次文本很慢。當你粘貼長行,它不斷更新顯示(因爲vim如何處理文本,或者終端如何處理vim文本,我猜)。
我嘗試在vim中粘貼文本(使用iTerm),它有相同的問題,它需要一段時間粘貼。我試過:set paste
和:set nowrap
,仍然很慢。粘貼線直入終端同樣是緩慢的
隨着你提到的dpaste鏈接,有一個純文本鏈接,你可以只wget和編輯:
curl http://dpaste.com/115362/plain/ | vim -
如果你:句法關閉,你有時可以改進一個長的單行文件粘貼。一個例子是一臺機器生成的xml文件。
你也許可以在粘貼的時候禁用vim的重繪,看看:他重繪,但總是值得使用命令行的東西如果你重複這個過程或類似的東西,你總是可以用腳本/ vim宏自動化它
:read !pbpaste
如果您使用的是Linux使用:
xsel --clipboard --output
或:
xclip -selection clipboard -o
而不是pbpaste。
我贊成像Masi建議的粘貼/ nopaste。 在.vimrc中,您可以映射某些字符以切換粘貼(如果經常需要)。
即
set pastetoggle=§
沒有變化:這是我的貼:http://dpaste.com/115362/ – 2009-02-01 19:23:12