Vimでこのスクリプトを貼り付けた場合:
#!/bin/sh
VAR=1
while ((VAR < 10))
do
echo "VAR1 is now $VAR"
((VAR = VAR +2))
done
echo "finish"
私はこれらの奇妙な結果を得ます:
#!/bin/sh
#VAR=1
#while ((VAR < 10))
# do
# echo "VAR1 is now $VAR"
# ((VAR = VAR +2))
# done
# echo "finish"
#
ハッシュ記号(#)とタブが表示されています。どうして?
2つの理由があります。
自動インデントが有効になっているときにvim
に貼り付けるには、次のように入力して 貼り付けモード に変更する必要があります。
:set paste
次に、挿入モードに変更してコードを貼り付けることができます。貼り付けが完了したら、次のように入力します。
:set nopaste
貼り付けモードをオフにします。これは一般的で頻繁なアクションなので、vim
は貼り付けモードの切り替えを提供します。
set pastetoggle=<F2>
F2
を任意のキーに変更でき、貼り付けのオンとオフを簡単に切り替えることができます。
コメントの自動挿入をオフにするには、次の行を vimrc に追加します。
augroup auto_comment
au!
au FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
augroup END
vim
には、システムクリップボードからテキストを貼り付けるための 貼り付けレジスタ も用意されています。システムに応じて、"*p
または"+p
を使用できます。 OSXやWindowsなど、X11がないシステムでは、*
レジスタを使用する必要があります。 LinuxのようなX11システムでは、両方を使用できます。
さらに読む
Vimペーストを使用します。あなたが欲しいのは、クリップボードのバッファにあるものを貼り付けることです "+p
これは+
を貼り付けます。
Linuxを使用している場合は、*
はX /ミドルクリックバッファー(最後に選択されたテキスト)です。
その後、vimはそれがペーストであることを認識します。
それ以外の場合、vimは、貼り付けられるキーを入力したと見なし、貼り付けの最後まで(コピーされたインデントの上に)独自の自動インデントを行います。
これがSSH経由で機能するためのメモとして、クリップボードを共有するオプションを設定する必要があります-Y
見る man ssh
詳細については。
自動インデントがオンになっているためタブが挿入されました。自動インデント(:set noai
)をターミナルに貼り付ける前に。
コメント行は自動コメントによって生成され、オフにすると無効にできます。
これらの代わりに、トグルを使用して目的の動作を取得する必要があります:set paste
、フォーマットされたコードを貼り付け、:set nopaste
通常の動作に戻します。