回答:
ターミナルへのShift+ Insertと " 貼り付け "の両方は、同様の動作をします-キーの押下をエミュレートします。
これは、端末が作成できないことが多い重要な区別です。入力または貼り付けをしていますか?注:一部の端末は「ブラケットペースト」モードをサポートしていますが、@ Joshのコメントの後、xtermのvimプラグインブラケットペーストに出くわしました。
貼り付けられたデータは、挿入モードに入る最初の文字まで失われます。また、カーソルが移動し、ファイルの他の部分が変更されていることもあります(例:大文字小文字の変更/削除/など)...
要約すると、ファイルに挿入するテキストを貼り付ける場合は、最初に挿入モードに入ります。
次のテキストをコピーして、Vimを実行している端末に挿入してください(挿入モードではありません):
hello how are you
結果は、キーボードに同じ文字を入力した場合と同じです。
この場合、挿入モードのままになります...
挿入モードを終了してみてくださいEsc--そして次を貼り付けてください
/are
n
これにより、「are」の検索が実行されます。
これを貼り付けます:
:0
dG
ああ、いや...すべてがなくなった!
また、インデントを有効にしている場合、vim(挿入モード)にコードのブロックを貼り付けるとインデントが大きくなりすぎます-自動インデントされ、貼り付けたコードにインデントが含まれます。
def my_print(message):
print(message)
print('done...')
これを修正するには、:set paste
と:set nopaste
コマンドを使用します
set nopaste
ですか?期待しunset paste
ます。
"+
レジスタを使用してシステムクリップボードとやり取りすることをお勧めします。欠点は、Vimの一部のシステムまたはビルドが"*
代わりに使用するか、単にシステムクリップボードをサポートしていないことですが、私の経験で"+
は非常に信頼できます。