作为标题,如果我在函数体的中间并且函数体很长,我怎样才能跳回到函数体的开头。
答案 0 :(得分:52)
答案 1 :(得分:5)
对于包含在一对大括号{}中的函数:
跳转到开头:[{
跳转到结束:]}
对于使用大括号的函数,用括号或方括号替换大括号。
答案 2 :(得分:1)
[编辑]
这只适用于充满活力的ctags支持的语言。既然我们还没有适合知道您希望使用哪种语言,那么这个答案可能也不正确。
[/编辑]
答案 3 :(得分:1)
我花了好几个小时来制作这种模式: /^\s*\(\i\+\_[ \t\*]\+\)\+\i\+\_s*(\_[^)]*)\_s*{
,它对我有用。
编辑:更好的模式(版本2): /\(\(if\|for\|while\|switch\|catch\)\_s*\)\@64<!(\_[^)]*)\_[^;{}()]*\zs{
您可以在.vimrc中映射一些方便的绑定,例如:
" jump to the previous function
nnoremap <silent> [f :call search('^\s*\(\i\+\_[ \t\*]\+\)\+\i\+\_s*(\_[^)]*)\_s*{', "bw")<CR>
" jump to the next function
nnoremap <silent> ]f :call search('^\s*\(\i\+\_[ \t\*]\+\)\+\i\+\_s*(\_[^)]*)\_s*{', "w")<CR>
编辑:更好的模式(版本2):
" jump to the previous function
nnoremap <silent> [f :call
\ search('\(\(if\\|for\\|while\\|switch\\|catch\)\_s*\)\@64<!(\_[^)]*)\_[^;{}()]*\zs{', "bw")<CR>
" jump to the next function
nnoremap <silent> ]f :call
\ search('\(\(if\\|for\\|while\\|switch\\|catch\)\_s*\)\@64<!(\_[^)]*)\_[^;{}()]*\zs{', "w")<CR>
答案 4 :(得分:0)
答案 5 :(得分:-1)
搜索(向后)?^{
通常应该让你到那儿。