Добрый день.
Нужно вставлять текст в vim, без :set paste текст по понятным причинам смещается, добавляются комментарии и т.д. Можно ли сделать так, чтобы при вставке текста не приходилось писать :set paste, а после вставки :set nopaste? То есть чтобы вообще ВСЁ что вставлялось из буфера обмена входило в редактор в режиме вставки?
Вот решение:
function! WrapForTmux(s)
if !exists('$TMUX')
return a:s
endif
let tmux_start = "\<Esc>Ptmux;"
let tmux_end = "\<Esc>\\"
return tmux_start . substitute(a:s, "\<Esc>", "\<Esc>\<Esc>", 'g') . tmux_end
endfunction
let &t_SI .= WrapForTmux("\<Esc>[?2004h")
let &t_EI .= WrapForTmux("\<Esc>[?2004l")
function! XTermPasteBegin()
set pastetoggle=<Esc>[201~
set paste
return ""
endfunction
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
Хак взят отсюда: https://coderwall.com/p/if9mda