在emacs中,当我将光标放在}
上时,echo缓冲区显示匹配的{
例如:
if(a==b){
.
.
.
}
将光标放在}
上会显示“if (a==b).
”
谷歌搜索帮助找到这个听起来相似的插件 https://github.com/vim-scripts/tEchoPair/blob/master/README 我是vim的新手。我安装了插件,但是我没有得到预期的结果。
有没有更好的方法来获得匹配的括号文本?如果没有,我该如何使用这个插件?
答案 0 :(得分:2)
我尝试编写一个小脚本ShowMatchBrace.vim
(您可以将其放在.vimrc
中),该脚本会显示" }
"和" )
"在正常模式下。 (你可以自由地用它做任何事情)
autocmd! CursorMoved * call <SID>MatchBraces()
"This variable is for redrawing the cmd-line"
if !exists("s:brace")
let s:brace=0
endif
function! s:MatchBraces()
let l:currentPos=getpos('.')
if getline('.')[col('.') - 1] =~# '\v\}|\)'
let s:brace=1
normal! %
if getline('.')[col('.')-1] =~# '\v\{|\('
echo getline('.')
else
echohl ErrorMsg | echomsg "No match found for }|)" | echohl None
endif
elseif s:brace ==# 1
call feedkeys("\<c-l>")
let s:brace=0
endif
call setpos('.',l:currentPos)
endfunction
<子> 1 Demo是在对代码添加少量更改之前添加&#34;)&#34; case但它的行为方式与&#34;}&#34;完全相同。 子>