如何在vim脚本中找到匹配括号或括号的位置

时间:2016-09-08 05:35:23

标签: vim vim-plugin

我知道%我可以跳到匹配的支架和支架,但如果我只想知道匹配的支架和支架的位置怎么办?有什么功能可以做到吗?像

int test(int a){return a}

我的光标位于}之后的这一行的末尾,所以列是25,我想知道它的匹配括号({)的位置,应该是16。

1 个答案:

答案 0 :(得分:0)

您可以使用%,然后记录cursorpos()line() + col()。或者您可以使用searchpairpos(),但不要忘记在评论上下文中指定忽略括号字符的规则。

e.g。

let s:skip_comments = 'synIDattr(synID(line("."), col("."), 0), "name") =~?'
      \ . '"string\\|comment\\|doxygen"'

function! s:SearchBracket()
  let flag = 'cnzW'
  return searchpairpos('{', '', '}', flag, s:skip_comments)
endfunction