If you’re like me and use highlight + middle click pasting in Linux a lot, you may have tried to paste text in a Vim window at some point… with surprising results.
For example, highlight the following text:
import re
for test_string in ['555-1212', 'ILL-EGAL']:
if re.match(r'^\d{3}-\d{4}$', test_string):
print test_string, 'is a valid US local phone number'
else:
print test_string, 'rejected'
Pasting it into a Vim terminal window when in insert mode will give you something like this:
mport re
for test_string in ['555-1212', 'ILL-EGAL']:
if re.match(r'^\d{3}-\d{4}$', test_string):
print test_string, 'is a valid US local phone number'
else:
print test_string, 'rejected'
Eh?
To make it paste as expected, first use the following command in Vim:
:set paste
Paste your text and it will come out formatted correctly. When you’re done, unset it with:
:set nopaste
(Python code example from http://wiki.python.org/moin/SimplePrograms)