auto-pairs/README.md
jiangfriend@gmail.com 7e4614d6aa add contributor list
2011-12-29 21:42:43 +08:00

3.6 KiB

Auto Pairs

Insert or delete brackets, parens, quotes in pair.

Installation

copy plugin/auto-pairs.vim to ~/.vim/plugin

Features

  • Insert in pair

    input: [
    output: [|]
    
  • Delete in pair

    input: foo[<BS>
    output: foo
    
  • Insert new indented line after Return

    input: {|} (press <CR> at |)
    output: {
        |
    }
    
  • Insert spaces before closing characters, only for [], (), {}

    input: {|} (press <SPACE> at |)
    output: { | }
    
    input: {|} (press <SPACE>foo} at |)
    output: { foo }|
    
    input: '|' (press <SPACE> at |)
    output: ' |'
    
  • Skip ' when inside a word

    input: foo| (press ' at |)
    output: foo'
    
  • Skip closed bracket.

    input: []
    output: []
    
  • Ignore auto pair when previous character is \

    input: "\'
    output: "\'"
    
  • Fast Wrap

    input: |'hello' (press (<M-e> at|)
    output: ('hello')
    
  • Quick jump to closed pair.

    input: 
    {
        something;|
    }
    
    (press } at |)
    
    output:
    {
    
    }|
    

Shortcuts

System Shortcuts:
    <CR>  : Insert new indented line after return if cursor in blank brackets or quotes.
    <BS>  : Delete brackets in pair
    <M-p> : Toggle Autopairs
    <M-e> : Fast Wrap

Optional Shortcuts:
could be turn off by let g:AutoPairsShortcuts = 0
    <M-n> jump to next closed bracket.
    <M-a> jump to end of line.
    <M-o> jump to newline with indented.

Options

  • g:AutoPairs

    Default: {'(':')', '[':']', '{':'}',"'":"'",'"':'"'}
    
  • g:AutoPairsShortcutToggle

    Default: '<M-p>'
    
    The shortcut to toggle autopairs.
    
  • g:AutoPairsShortcutFastWrap

    Default: '<M-e>'
    
    Fast wrap the word. all pairs will be consider as a block (include <>).
    (|)'hello' after fast wrap at |, the word will be ('hello')
    (|)<hello> after fast wrap at |, the word will be (<hello>)
    
  • g:AutoPairsShortcuts

    Default: 1 
    
    imap 3 shortcuts
    <M-n> jump to next closed bracket.
    <M-a> jump to end of line.
    <M-o> jump to newline with indented.
    
  • g:AutoPairsMapBS

    Default : 1
    
    Map <BS> to delete brackets, quotes in pair
    execute 'inoremap <buffer> <silent> <BS> <C-R>=AutoPairsDelete()<CR>'
    
  • g:AutoPairsMapCR

    Default : 1
    
    Map <CR> to insert a new indented line if cursor in (|), {|} [|], '|', "|"
    execute 'inoremap <buffer> <silent> <CR> <C-R>=AutoPairsReturn()<CR>'
    
  • g:AutoPairsCenterLine

    Default : 1
    
    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>'
    

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 x to delete the character insert by plugin.

Contributors