Не обязательно более простой, но различный путь, если Вы более знакомы с семьей ре.
import re, string
s = "string. With. Punctuation?" # Sample string
out = re.sub('[%s]' % re.escape(string.punctuation), '', s)
Используйте команду : set paste
перед вставкой текста. Это отключает автоотступ и другие вещи, которые могут мешать вставке. Чтобы восстановить нормальную работу, используйте : установить nopaste
.
Или используйте : r! Pbpaste
- который вставляет вывод команды pbpaste
(который является текущим буфером вставки) под текущим линия; не нужно возиться с режимами и тому подобным.
Если нужно, вы можете просто использовать cat (1)
:
$ cat > newfile.py
Paste the code here, then press Ctrl-D for EOF.
Make sure to type EOF on an otherwise empty line
or bad things will happen to your children.
$ vi newfile.py
Должно работать.
Помимо уже упомянутой команды : set paste
, вы всегда можете выполнить "+ p
, чтобы вставить содержимое буфера обмена в текущий местоположение. Я не использовал Vim в Mac OS X, но уверен, что это все еще актуально. В Linux есть "* p
для буфера обмена выбора и " + p
для буфера обмена для копирования и вставки; в Windows они оба указывают на системный буфер обмена. "+ p
сначала выглядит немного странно, но как только вы привыкнете использовать этот тип команда, становится очень быстро. В качестве альтернативы вы можете использовать : put +
, чтобы сделать то же самое.
:help quote
:help put
:help :put
:help registers
Если бы вы использовали emacs, это было бы просто: Mx mark-all-buffer
и Mx indent-region
.