vim-bracketed-paste!

This commit is contained in:
Conrad Irwin 2013-04-07 16:56:00 -07:00
commit 46bb985dc7
2 changed files with 42 additions and 0 deletions

25
README.md Normal file
View File

@ -0,0 +1,25 @@
vim-bracketed-paste enables transparent pasting into vim. (i.e. no more `set paste`!)
Installation
============
I recommend using [pathogen](https://github.com/tpope/pathogen). Once you have installed pathogen:
```bash
cd ~/.vim/bundle
git clone https://github.com/ConradIrwin/vim-bracketed-paste
```
Otherwise just copy-paste everything from [plugin/bracketed-paste.vim](https://github.com/ConradIrwin/vim-bracketed-paste/blob/master/plugin/bracketed-paste.vim) into your `~/.vimrc`.
Usage
=====
You need to be using a modern xterm-compatible terminal emulator (xterm, urxvt, and iTerm2 are known to work, there are probably more) that supports [bracketed paste mode](http://www.xfree86.org/current/ctlseqs.html#The Alternate Screen Buffer).
Then whenever you paste into your terminal emulator using `command+v` or `shift+insert`, vim will automatically `set paste` for you.
Credit
======
The code for this plugin was taken from Chis Page's answer to a [StackOverflow question](http://stackoverflow.com/questions/5585129/pasting-code-into-terminal-window-into-vim-on-mac-os-x), I just packaged it.

View File

@ -0,0 +1,17 @@
" Code from:
" http://stackoverflow.com/questions/5585129/pasting-code-into-terminal-window-into-vim-on-mac-os-x
" Docs on bracketed paste mode:
" http://www.xfree86.org/current/ctlseqs.html
if &term =~ "xterm.*"
let &t_ti = &t_ti . "\e[?2004h"
let &t_te = "\e[?2004l" . &t_te
function XTermPasteBegin(ret)
set pastetoggle=<Esc>[201~
set paste
return a:ret
endfunction
map <expr> <Esc>[200~ XTermPasteBegin("i")
imap <expr> <Esc>[200~ XTermPasteBegin("")
cmap <Esc>[200~ <nop>
cmap <Esc>[201~ <nop>
endif