Skip to content

Latest commit

 

History

History
171 lines (121 loc) · 4.22 KB

32-82618-函数跳转.sy.md

File metadata and controls

171 lines (121 loc) · 4.22 KB
show version enable_checker
step
1.0
true

程序移动

回忆上节课内容🤔

  • 上次内容很简单,主要针对文本类素材
  • 移动段落
    • { 向前
    • } 向后
  • 移动句子
    • ( 向前
    • ) 向后
  • 如果我想程序中快速移动
  • 怎么办?🤔
#首先下载文本找到tomsawyer.txt
git clone http://gitee.com/overmind1980/oeasyvim.git
#然后把文本打开
cd oeasyvim
vi oeasy.java

括号间跳转 %

  • 当我们的鼠标在小括号内部时
    • 比如在 public static void main(String[] args) 中的 小括号(
      • 我们可以使用 % 跳转到括号对的前半部分
      • 然后我们可以使用 % 在这对儿括号的两个位置指间跳转
  • 这个 % 不但对于小括号有用,对于成对的大括号、中括号也都有用
    • 对于c语言的 /* ... */ 注释的头尾 ୧(﹒︠ᴗ﹒︡ )୨有用
    • 对于 #if,#ifdef,#else,#elif,#endif 也有用
    • 这个 % 不支持 [count]

图片描述

小括号跳转

图片描述

  • 方向

    • [ 往上
      • [( 进挨着的上一个(
    • ] 往下
      • ]) 近挨着的下一个)
  • 如果是大括号呢?

括号跳转

图片描述

  • [( 跳转到上一个没配对的 (

  • ]) 跳转到下一个没配对的 )

  • [{ 跳转到上一个没配对的 {

  • ]} 跳转到下一个没配对的 }

  • 支持 [count]

  • 向上就是[

  • 向下就是]

函数中的跳转

图片描述

  • 方向
    • [ 往上
      • [{ 紧挨着的上一个{
      • [[ 本块的第一行
    • ] 往下
      • ]} 近挨着的下一个}
      • ]] 本块的最后一行

注释的头尾

  • 注释跳转
    • [/[*上一个注释/* .... */的头
    • ]*]/下一个注释/* .... */的头

图片描述

函数间跳转

图片描述

  • 函数跳转
    • ]m下一个函数开头
    • ]M下一个函数结尾
    • [m上一个函数开头
    • [M上一个函数结尾
    • 支持 [count]
      • 3]m 可以往下跳到第 3 个函数开头
    • [m]m 这两个其实还挺好用的

跳到定义

图片描述

  • 找到本地定义
  • gd - goto global declaration

图片描述

  • 和 * 不一样的是它会往前找到第一个
  • [[ 的范围内的第一个

没有配对的 #if 宏定义

  • 这个是针对宏定义里面的内容来的
    • [# 上一个没有配对的 #if#else
    • ]# 下一个没有配对的 #else#endif

图片描述

标签跳转

#查找matchit.vim
sudo find / -name matchit.vim
# 把match.vim插件放到系统插件文件夹
sudo cp /usr/share/vim/vim81/macros/matchit.vim /usr/share/vim/vim81/plugin
#打开一个网页
vi oeasy.html

图片描述

  • 这个matchit可以支持标签的跳转
  • 比如在 <html> 处按下 % 就可以到配对的 </html>
  • 挺好玩的
  • 试试吧 🤪

总结

  • 括号间跳转

    • 成对括号间跳转 %
    • 不成对括号间跳转
      • [[ 跳转到本块第一行
      • ]] 跳转到本块最后一行
      • [{ 跳转到上一个的 {
      • ]} 跳转到下一个的 }
  • 函数间跳转

    • ]m 下一个函数开头
    • [m 上一个函数开头
    • ]M 下一个函数开头
    • [M 上一个函数结尾
  • #if#else#endif 没有配对的

    • [# 上一个没有配对的 #if#else
    • ]# 下一个没有配对的 #else#endif
  • 注释的头尾

    • [/[* 上一个注释 /* .... */ 的头
    • ]*]/ 下一个注释 /* .... */ 的头
  • 如果我想快速找到某个东西怎么办呢?🤔

  • 下次再说 👋