Someone showed me how to do this before but I can\'t figure out what it was now.
I know about :set paste but this is not the problem.
For some filetypes :set syntax=off makes no difference because the slowdown is caused by foldexpr. Setting an empty foldexpr makes pasting fast again.
Doing it manually is stupid (and slow!). Luckily vim supports bracketed paste in many terminals and enables paste automatically, so it's possible to hook into that and temporarily disable foldexpr:
function! s:paste_toggled(new, old) abort
if a:new && !a:old
let b:saved_foldexpr = &foldexpr
let &l:foldexpr = ''
elseif !a:new && a:old && exists('b:saved_foldexpr')
let &l:foldexpr = b:saved_foldexpr
unlet b:saved_foldexpr
endif
endfunc
augroup FastPaste
autocmd OptionSet paste call s:paste_toggled(v:option_new, v:option_old)
augroup END
(source: https://github.com/liskin/dotfiles/blob/69ab04e64e001da90232eaf2c5856337d58c785f/.vim/plugin/fastpaste.vim)