There're two reasons:
For pasting in
vim while auto-indent is enabled, you must change to paste mode by typing:
Then you can change to insert mode and paste your code. After pasting is done, type:
to turn off paste mode. Since this is a common and frequent action,
vim offers toggling paste mode:
You can change
F2 to whatever key you want, and now you can turn pasting on and off easily.
To turn off auto-insert of comments, you can add these lines to your vimrc:
au FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
vim also provides a pasting register for you to paste text from the system clipboard. You can use
"+p depending on your system. On a system without X11, such as OSX or Windows, you have to use the
* register. On an X11 system, like Linux, you can use both.