如果我可以输入](或者其他一些字符<C-]>)并且自动插入任何支架正确关闭开口支架,那么在vim中会很棒.例如.如果我在缓冲区中有这个:
object(function(x) { x+[1,2,3
Run Code Online (Sandbox Code Playgroud)
我按]]],]})将插入字符.怎么可能实现这个呢?
unp*_*680 10
这是你可能想要的草图.内置函数searchpair,searchpairpos对各种文本编辑任务有很大的帮助:)
" Return a corresponding paren to be sent to the buffer
function! CloseParen()
let parenpairs = {'(' : ')',
\ '[' : ']',
\ '{' : '}'}
let [m_lnum, m_col] = searchpairpos('[[({]', '', '[\])}]', 'nbW')
if (m_lnum != 0) && (m_col != 0)
let c = getline(m_lnum)[m_col - 1]
return parenpairs[c]
endif
return ''
endfun
Run Code Online (Sandbox Code Playgroud)
为了舒适地使用它,请使用imap它:
imap <C-e> <C-r>=CloseParen()<CR>
Run Code Online (Sandbox Code Playgroud)
编辑:过度转义搜索正则表达式,因此\包含在搜索中.现在少一个问题.
| 归档时间: |
|
| 查看次数: |
1165 次 |
| 最近记录: |