昨日、80 文字の 1200 行を Vim に貼り付けようとしたときに、Macbook が動かなくなりました。テキストを貼り付けるのではなく、ファイルをダウンロードする方がはるかに高速でした。
インターネット オペレータがダウンロードよりも遅いアップロードを許可している理由は、この問題にあるのではないかと考えています。
ターミナル ウィンドウに貼り付けると、Vim は手で入力していると認識し、表示を更新しようとします。pbpaste
およびコマンドを使用して (OS X 上で) クリップボードにアクセスできるpbcopy
ため、Vim でこれを実行できます。
:read !pbpaste
またはシェルで:
bash$ pbpaste | vim -
GUI Vim を使用している場合は、"*
レジスターを使用して貼り付けます (これがコンテキスト メニューの機能です)。
"*P <- in normal mode
通常、ターミナル ウィンドウに貼り付けることpbpaste
はお勧めできません。可能な場合は試してみてください。
:read !pbpaste
Linux を使用している場合:
xsel --clipboard --output
また:
xclip -selection clipboard -o
pbpaste の代わりに。
それが「普通」です。テキストを何千回も再描画するのは遅いため、遅いです。
長い行を貼り付けると、表示が常に更新されます(vimがテキストを処理する方法、または端末がvimテキストを処理する方法のためだと思います)。
テキストをvimに(iTermを使用して)貼り付けようとしましたが、同じ問題があり、貼り付けに時間がかかります。私は試し:set paste
てみましたが:set nowrap
、それでもまだ遅いです。行を端末に直接貼り付けると、同様に遅くなります
あなたが言及したdpasteリンクには、wgetして編集するだけのプレーンテキストリンクがあります:
curl http://dpaste.com/115362/plain/ | vim -
Masiが提案したように、セットペースト/ノペーストを好みます。.vimrc では、一部の文字をマップして貼り付けを切り替えることができます (必要な場合)。
すなわち
set pastetoggle=§
:syntax off を指定すると、長い単一行ファイルのインプレース ペーストが改善されることがあります。例として、マシンで生成された xml ファイルがあります。
おそらく、貼り付け中にvimの再描画を無効にすることもできます。 :he redraw を見てください。ただし、コマンドラインのものを使用することは常に価値があります。
貼り付けモードを試しましたか?貼り付けを設定する/貼り付けを設定しない?
ただし、ウェブ上にある場合は、次のことを試してください。
: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
代わりは。
これが Mac の問題なのか、それとも別の問題なのかはわかりませんが、Vim にそれだけの量のテキストを貼り付けることには何の問題もありません。Windows と Linux で試しましたが、問題はありませんでした。
Vim で数百メガのファイル (ログ ファイル) を正常に編集できました (読み込みは遅いですが、テキストが読み取られると、すべてがかなりきびきびと動作します)。
Apple Terminal を使用している場合は、iTerm などの他の端末を試してください。「ビルトイン」ターミナルは、一般的なタスクに対して実際には反応しない場合があります。理由がわからない...