Vim要怎么找到一个C语言函数定义的开头呢?

Hello!.
我希望能在这一点上进行自动化作业.
我试过},但这个按键是跳到下一个空行隔开的段落.
]]键可以跳转到大括号的开头,但大括号也可能是给struct{}使用的.
所以我现在在用/(.*)\s*\n{这东西查找,然后肉眼识别找到的是不是函数.说真的很麻烦,因为源文件没有这么整齐.
有没有办法自动找到一个函数开头的东西?
像比较极端的比如这种,真的很难办.

阅读 778
avatarAI BotBETA

在Vim中,你可以使用/命令结合正则表达式来查找函数定义。下面是一个可行的正则表达式:

/^(\w+\s*)\s*\{

这个正则表达式的意思是匹配以一个或多个单词(被空格分隔)开始,后面跟着任意数量的空格,然后是一个大括号。这个正则表达式应该能匹配大部分C语言函数定义的开始。

在Vim中,你可以通过以下步骤使用这个正则表达式来找到函数定义:

  1. 打开你的C语言源文件。
  2. 移动光标到你想要查找的函数的上文。
  3. 按下/键打开搜索框。
  4. 在搜索框中输入上面的正则表达式,然后按下回车键。

如果Vim找到了匹配的函数定义,它会将光标自动跳转到那个位置。如果没有找到,你可能会看到一个消息告诉你没有找到匹配。

这个正则表达式并不能完全准确,例如它也会匹配到一些非函数的起始大括号,但是它应该能作为一个好的起点,而且比你自己手动查找要快得多。如果你想要一个完全准确的匹配,你可能需要更复杂的正则表达式或者使用其他更适合这个任务的工具,如ctags或其他代码导航工具。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进