From: Oleg Broytman Date: Thu, 18 Jul 2019 19:28:59 +0000 (+0300) Subject: .vimrc: Improved bracketed paste mode X-Git-Url: https://git.phdru.name/?a=commitdiff_plain;h=334d38cccd615842e2ec3a93da6cd56a2b561e8e;p=dotfiles.git .vimrc: Improved bracketed paste mode --- diff --git a/.vimrc b/.vimrc index 6a16d72..849d8ac 100644 --- a/.vimrc +++ b/.vimrc @@ -279,29 +279,24 @@ else endif endif - " Automatically set paste mode in Vim when pasting in bracketed paste mode - " https://coderwall.com/p/if9mda/automatically-set-paste-mode-in-vim-when-pasting-in-insert-mode - function! WrapForTmux(s) - if !exists('$TMUX') - return a:s - endif + " Bracketed paste mode + " https://github.com/ConradIrwin/vim-bracketed-paste/blob/master/plugin/bracketed-paste.vim + let &t_ti .= "\[?2004h" + let &t_te = "\e[?2004l" . &t_te - let tmux_start = "\Ptmux;" - let tmux_end = "\\\" - - return tmux_start . substitute(a:s, "\", "\\", 'g') . tmux_end - endfunction - - let &t_SI .= WrapForTmux("\[?2004h") - let &t_EI .= WrapForTmux("\[?2004l") - - function! XTermPasteBegin() - set pastetoggle=[201~ + function! XTermPasteBegin(ret) + set pastetoggle= set paste - return "" + return a:ret endfunction - inoremap [200~ XTermPasteBegin() + execute "set =\[200~" + execute "set =\[201~" + map XTermPasteBegin("i") + imap XTermPasteBegin("") + vmap XTermPasteBegin("c") + cmap + cmap endif " Multiline comments often confuse vim syntax highlighting - these maps