Reputation: 135
When I copy and past a block of code in Vim, every line gets indented by one. For example, I have this source:
print "Hello"
print "World"
print "I'm copying"
print "and pasting"
Which gets jumbled when pasting into Vim:
print "Hello"
print "World"
print "I'm copying"
print "and pasting"
For copying long lines of code, it's very frustrating because everything gets out of alignment (not good for python).
Here is my vimrc. It currently auto-indents on newlines, and replaces tabs with the standard 4 spaces.
filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab
While this config works, something is causing the copy-paste problem. How can this be fixed, but still retain the behaviors that I've defined?
Upvotes: 13
Views: 4718
Reputation: 191729
Use :set paste
to switch to paste mode.
This article explains paste mode
It was made specifically for pasting text into vim so it doesn't trigger any input mappings. Remember to :set nopaste
when you are done to get your mappings back.
Upvotes: 17