|
1 | 1 | " Insert or delete brackets, parens, quotes in pairs.
|
2 | 2 | " Maintainer: JiangMiao <jiangfriend@gmail.com>
|
3 | 3 | " Contributor: camthompson
|
4 |
| -" Last Change: 2012-09-15 |
5 |
| -" Version: 1.2.5 |
| 4 | +" Last Change: 2012-10-17 |
| 5 | +" Version: 1.2.6 |
6 | 6 | " Homepage: http://www.vim.org/scripts/script.php?script_id=3599
|
7 | 7 | " Repository: https://github.com/jiangmiao/auto-pairs
|
8 | 8 |
|
@@ -72,9 +72,12 @@ function! AutoPairsInsert(key)
|
72 | 72 | end
|
73 | 73 |
|
74 | 74 | let line = getline('.')
|
75 |
| - let prev_char = line[col('.')-2] |
76 |
| - let current_char = line[col('.')-1] |
77 |
| - let next_char = line[col('.')] |
| 75 | + let pos = col('.') - 1 |
| 76 | + let next_chars = split(strpart(line, pos), '\zs') |
| 77 | + let current_char = get(next_chars, 0, '') |
| 78 | + let next_char = get(next_chars, 1, '') |
| 79 | + let prev_chars = split(strpart(line, 0, pos), '\zs') |
| 80 | + let prev_char = get(prev_chars, -1, '') |
78 | 81 |
|
79 | 82 | let eol = 0
|
80 | 83 | if col('$') - col('.') <= 1
|
@@ -151,9 +154,11 @@ endfunction
|
151 | 154 |
|
152 | 155 | function! AutoPairsDelete()
|
153 | 156 | let line = getline('.')
|
154 |
| - let current_char = line[col('.')-1] |
155 |
| - let prev_char = line[col('.')-2] |
156 |
| - let pprev_char = line[col('.')-3] |
| 157 | + let pos = col('.') - 1 |
| 158 | + let current_char = get(split(strpart(line, pos), '\zs'), 0, '') |
| 159 | + let prev_chars = split(strpart(line, 0, pos), '\zs') |
| 160 | + let prev_char = get(prev_chars, -1, '') |
| 161 | + let pprev_char = get(prev_chars, -2, '') |
157 | 162 |
|
158 | 163 | if pprev_char == '\'
|
159 | 164 | return "\<BS>"
|
|
0 commit comments