【发布时间】:2010-11-24 08:30:49
【问题描述】:
我只想在 .c/.cpp 文件中从一个函数跳转到下一个函数。我该怎么做?
【问题讨论】:
-
java / C++ 方法stackoverflow.com/questions/12128678/…(必须放在顶部
class {}),函数开头:stackoverflow.com/questions/2109503/…
标签: vim
我只想在 .c/.cpp 文件中从一个函数跳转到下一个函数。我该怎么做?
【问题讨论】:
class {}),函数开头:stackoverflow.com/questions/2109503/…
标签: vim
看看 exuberant-ctags 它适用于 Emacs,以及你的“vim”东西 ;-)
【讨论】:
我相信您正在寻找]],它会跳转到第一列的下一个{ 字符。
有类似的选项,请尝试:help ]] 了解更多信息。
【讨论】:
关于 [[ 和 ]] 的使用,请注意 vim 文档中 motion.txt 中的以下内容:
如果您的 '{' 或 '}' 不在第一列,并且您想使用 "[[" 和“]]”无论如何,请尝试以下映射: :地图 [[ ?{w99[{ :map ][ /}b99]} :map ]] j0[[%/{ :map [] k$][%?}【讨论】:
我使用这些映射使 [[ 和 ]] 可以与不将起始 { 放在行首的函数一起使用。
map ]] :call search("^\\(\\w.*\\)\\?{")<CR>
map [[ :call search("^\\(\\w.*\\)\\?{", "b")<CR>
map ][ :call search("^}")<CR>
map [] :call search("^}", "b")<CR>
【讨论】:
map ]] :call search("^\\(\\w.*\\)\\?{", "e")<CR>这样的'{'或'}'可能更好。
只需使用]m跳转到下一个方法,[m跳转到上一个方法。
在你的~/.vimrc,你可以这样做
nnoremap ]m ]mzz
nnoremap [m [mzz
因此,每次在方法之间跳转时,都将方法放在屏幕的中心。
【讨论】:
如果您使用 taglist,我添加了一个功能。如果 taglist 支持该语言,您可以使用 Ctrl-up 和 Ctrl-down 从一个标签跳转到另一个标签。
这里:https://github.com/man9ourah/taglist
这个给你的.vimrc。
nmap <silent> <c-up> <plug>(TlistJumpTagUp) " Map ctrl-up to move one tag up
nmap <silent> <c-down> <plug>(TlistJumpTagDown) " Map ctrl-down to move one tag down
【讨论】: