Auto Pairs : Insert or delete brackets, parens, quotes in pair.
script karma |
Rating 411/140,
Downloaded by 13701 |
Comments, bugs, improvements
|
Vim wiki
|
created by |
Miao Jiang |
|
script type |
utility |
|
description |
Repository: https://github.com/jiangmiao/auto-pairs
Auto Pairs
==========
Insert or delete brackets, parens, quotes in pair.
Installation
------------
copy plugin/auto-pairs.vim to ~/.vim/plugin
or if you are using `pathogen`:
```git clone git://github.com/jiangmiao/auto-pairs.git ~/.vim/bundle/auto-pairs```
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')
wrap string, only support c style string
input: |'h\\el'lo' (press (<M-e> at |)
output ('h\\ello'')
input: |[foo, bar()] (press (<M-e> at |)
output: ([foo, bar()])
* Quick jump to closed pair.
input:
{
something;|
}
(press } at |)
output:
{
}|
* Support ``` ''' and """
input:
'''
output:
'''|'''
* Delete Repeated Pairs in one time
input: """|""" (press <BS> at |)
output: |
input: {{|}} (press <BS> at |)
output: |
input: [[[[[[|]]]]]] (press <BS> at |)
output: |
* Fly Mode
input: if(a[3)
output: if(a[3])| (In Fly Mode)
output: if(a[3)]) (Without Fly Mode)
input:
{
hello();|
world();
}
(press } at |)
output:
{
hello();
world();
}|
(then press <M-b> at | to do backinsert)
output:
{
hello();}|
world();
}
See Fly Mode section for details
Fly Mode
--------
Fly Mode will always force closed-pair jumping instead of inserting. only for ")", "}", "]"
If jumps in mistake, could use AutoPairsBackInsert(Default Key: `<M-b>`) to jump back and insert closed pair.
the most situation maybe want to insert single closed pair in the string, eg ")"
Fly Mode is DISABLED by default.
add **let g:AutoPairsFlyMode = 1** .vimrc to turn it on
Default Options:
let g:AutoPairsFlyMode = 0
let g:AutoPairsShortcutBackInsert = '<M-b>'
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 (g:AutoPairsShortcutToggle)
<M-e> : Fast Wrap (g:AutoPairsShortcutFastWrap)
<M-n> : Jump to next closed pair (g:AutoPairsShortcutJump)
<M-b> : BackInsert (g:AutoPairsShortcutBackInsert)
If <M-p> <M-e> or <M-n> conflict with another keys or want to bind to another keys, add
let g:AutoPairShortcutToggle = '<another key>'
to .vimrc, if the key is empty string '', then the shortcut will be disabled.
Options
-------
* g:AutoPairs
Default: {'(':')', '[':']', '{':'}',"'":"'",'"':'"', '`':'`'}
* b:AutoPairs
Default: g:AutoPairs
Buffer level pairs set.
* 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:AutoPairsShortcutJump
Default: '<M-n>'
Jump to the next closed pair
* 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>'
* 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.
Breaks '.' - [issue #3](https://github.com/jiangmiao/auto-pairs/issues/3)
Description: After entering insert mode and inputing `[hello` then leave insert
mode by `<ESC>`. press '.' will insert 'hello' instead of '[hello]'.
Reason: `[` actually equals `[]\<LEFT>` and \<LEFT> will break '.'
Solution: none
Contributors
------------
* [camthompson](https://github.com/camthompson) |
|
install details |
copy plugin/auto-pairs.vim to ~/.vim/plugin
or if you are using `pathogen`:
```git clone git://github.com/jiangmiao/auto-pairs.git ~/.vim/bundle/auto-pairs```
|
|
script versions (upload new version)
Click on the package to download.
auto-pairs-v1.3.2.tar.gz |
1.3.2 |
2013-07-17 |
7.0 |
Miao Jiang |
Try to use abbreviation before using space mapping
<c-h> now behaves the same as <BS> |
auto-pairs-v1.3.1.tar.gz |
1.3.1 |
2013-03-31 |
7.0 |
Miao Jiang |
Fix #33: character '|' map failed.
Fix #35: Fast Wrap incorrect.
Improve #36, Keep quotes number is odd in one line.
Improve #37, ignore comment line for vim file.
Improve #43, <CR> mapping compatible. |
auto-pairs-v1.3.0.tar.gz |
1.3.0 |
2013-02-16 |
7.0 |
Miao Jiang |
Auto insert triple pairs.
Support deleting repeated pairs in one time. |
auto-pairs-v1.2.9.tar.gz |
1.2.9 |
2013-01-15 |
7.0 |
Miao Jiang |
Supports buffer level pairs setting. |
auto-pairs-v1.2.8.tar.gz |
1.2.8 |
2012-12-18 |
7.0 |
Miao Jiang |
fixes incorrect AutoPairsDelete. |
auto-pairs-v1.2.7.tar.gz |
1.2.7 |
2012-11-02 |
7.0 |
Miao Jiang |
fixes #24 when equalprg is set 'Return' feature cannot work well |
auto-pairs-v1.2.6.tar.gz |
1.2.6 |
2012-10-17 |
7.0 |
Miao Jiang |
Support typographer's quote pairs, such as ‘ ’, “ ” |
auto-pairs-v1.2.5.tar.gz |
1.2.5 |
2012-09-15 |
7.0 |
Miao Jiang |
Fixes indentation incorrect when returning below 1/3 bottom of window. |
auto-pairs-v1.2.4.tar.gz |
1.2.4 |
2012-08-16 |
7.0 |
Miao Jiang |
fixes #20 Errors in pair creation that is split by ENTER |
auto-pairs-v1.2.3.tar.gz |
1.2.3 |
2012-07-15 |
7.0 |
Miao Jiang |
compatible with neocomplcache
compatible with clang_complete
Improve Fast Wrap
|
auto-pairs-v1.2.2.tar.gz |
1.2.2 |
2012-05-16 |
7.0 |
Miao Jiang |
compatible with vim-endwise, supertab.
Disable Fly mode by default. |
auto-pairs-v1.2.0.tar.gz |
1.2.0 |
2012-05-14 |
7.0 |
Miao Jiang |
New feature: Fly Mode |
auto-pairs-v1.1.6.tar.gz |
1.1.6 |
2012-03-22 |
7.0 |
Miao Jiang |
fixes issue #9 Lowercase 'a' acute accent via opt-e not working
fixes issue #8 having errors with the double quotes when cpoptions is $
avoid overriding imap silent flag
always silent mapping
|
auto-pairs-v1.1.5.tar.gz |
1.1.5 |
2012-03-03 |
7.0 |
Miao Jiang |
works with vim-endwise |
auto-pairs-v1.1.4.tar.gz |
1.1.4 |
2012-01-17 |
7.0 |
Miao Jiang |
Avoid ' in word, eg: John's
Support `
Support triple quote, ''', """, ``` |
auto-pairs-v1.1.3.tar.gz |
1.1.3 |
2011-12-22 |
7.0 |
Miao Jiang |
NEW: quick jump to the closed pair
NEW: auto insert space
|
auto-pairs-v1.1.2.tar.gz |
1.1.2 |
2011-11-13 |
7.0 |
Miao Jiang |
Fix autopairs isn't loaded when open new tab by mouse.
Optimize delete in pair |
auto-pairs-v1.1.1.tar.gz |
1.1.1 |
2011-09-05 |
7.0 |
Miao Jiang |
Fix auto indent incorrect in CoffeeScript
eg:
foo:
bar: [|]
press <CR> at | |
auto-pairs-v1.1.0.tar.gz |
1.1.0 |
2011-06-13 |
7.0 |
Miao Jiang |
fix indent incorrect after {\<CR>}
use <expr> instead of <C-R> in map keys |
auto-pairs-v1.0.3.tar.gz |
1.0.3 |
2011-06-09 |
7.0 |
Miao Jiang |
Add Fast Wrap feature. |
auto-pairs-v1.0.2.tar.gz |
1.0.2 |
2011-06-07 |
7.0 |
Miao Jiang |
Use {<enter> instead of {{ (Thanks to linopolus)
https://github.com/jiangmiao/auto-pairs/issues/1
Add Toggle key
Add Options
g:AutoPairsShortcutToggle
g:AutoPairsMapBS
g:AutoPairsMapCR
g:AutoPairsCenterLine
|
auto-pairs-1.0.1.tar.gz |
1.0.1 |
2011-05-24 |
7.0 |
Miao Jiang |
Initial upload |
ip used for rating: 3.239.76.211
|