When g:AutoPairsMapCR is on, center current line after return if the line is at the bottom 1/3 of the window.

* g:AutoPairsMapSpace

Default : 1

Map <space> to insert a space after the opening character and before the closing one.
execute 'inoremap <buffer> <silent> <CR> <C-R>=AutoPairsSpace()<CR>'

* g:AutoPairsFlyMode

Default : 0

set it to 1 to enable FlyMode.
see FlyMode section for details.

* g:AutoPairsShortcutBackInsert

Default : <M-b>

Work with FlyMode, insert the key at the Fly Mode jumped postion

Buffer Level Pairs Setting
--------------------------

Set b:AutoPairs before BufEnter

eg:

" When the filetype is FILETYPE then make AutoPairs only match for parenthesis
au Filetype FILETYPE let b:AutoPairs = {"(": ")"}

TroubleShooting
---------------
The script will remap keys ([{'"}]) <BS>,
If auto pairs cannot work, use :imap ( to check if the map is corrected.
The correct map should be <C-R>=AutoPairsInsert("\(")<CR>
Or the plugin conflict with some other plugins.
use command :call AutoPairsInit() to remap the keys.

* How to insert parens purely

There are 3 ways

1. use Ctrl-V ) to insert paren without trigger the plugin.

2. use Alt-P to turn off the plugin.

3. use DEL or <C-O>x to delete the character insert by plugin.

Known Issues
-----------------------
There are the issues I cannot fix.