Vim 匹配跳转与搜索命令完整学习笔记

Vim 匹配跳转与搜索命令完整学习笔记

文章目录

  • [Vim 匹配跳转与搜索命令完整学习笔记](#Vim 匹配跳转与搜索命令完整学习笔记)
    • [1. 括号/结构匹配](#1. 括号/结构匹配)
      • [`%` - 括号匹配跳转](#% - 括号匹配跳转)
      • [`\[\` / \`]` - 函数定义跳转](#[[ / ]] - 函数定义跳转)
      • [`{\` / \`}` - 代码块边界跳转](#[{ / ]} - 代码块边界跳转)
    • [2. 精确单词搜索](#2. 精确单词搜索)
      • [`*` - 向下精确搜索](#* - 向下精确搜索)
      • [`#` - 向上精确搜索](#` - 向上精确搜索)
    • [3. 模糊单词搜索](#3. 模糊单词搜索)
      • [`g*` - 向下模糊搜索](#g* - 向下模糊搜索)
      • [`g#` - 向上模糊搜索](#` - 向上模糊搜索)
    • [4. 手动查找](#4. 手动查找)
      • [`/word` - 向下搜索](#/word - 向下搜索)
      • [`?word` - 向上搜索](#?word - 向上搜索)
      • [`n` / `N` - 重复搜索](#n / N - 重复搜索)
    • [5. 标签跳转(需要 ctags)](#5. 标签跳转(需要 ctags))
      • [`Ctrl-]` - 跳转到定义](#Ctrl-] - 跳转到定义)
      • [`Ctrl-t` - 返回上一位置](#Ctrl-t - 返回上一位置)
    • [6. 标记跳转](#6. 标记跳转)
    • 快速参考表
    • 使用技巧

本指南汇总了 Vim 中最常用的匹配、跳转和搜索命令,帮助您快速定位代码和高效导航。

1. 括号/结构匹配

% - 括号匹配跳转

  • 功能 : 跳转到匹配的括号 ()、{}、[]
  • 使用方法 : 将光标放在任意括号上,按 % 可跳转到对应的另一端
  • 适用场景: 快速检查括号配对,定位代码块边界

[[ / ]] - 函数定义跳转

  • ​[[​ : 跳转到上一个函数定义或代码块起始
  • ​]]​ : 跳转到下一个函数定义或代码块起始
  • 适用场景: 在大文件中快速浏览函数结构

[{ / ]} - 代码块边界跳转

  • ​[{​ : 跳转到当前代码块起始位置
  • ​]}​ : 跳转到当前代码块结束位置
  • 备注 : 需要配合 matchit 插件使用,可与 if、for 等代码块跳转

2. 精确单词搜索

* - 向下精确搜索

  • 功能: 向下查找光标下的完整单词
  • 使用方法 : 将光标放在单词上按 *
  • 等效操作 : /\<word\><CR>

# - 向上精确搜索

  • 功能: 向上查找光标下的完整单词
  • 使用方法 : 将光标放在单词上按 #
  • 备注 : 与 * 搜索方向相反

3. 模糊单词搜索

g* - 向下模糊搜索

  • 功能: 向下查找包含该单词的部分匹配
  • 使用示例 : 光标在 log 上按 g*,可匹配 logger、logfile、catalog 等
  • 适用场景: 查找相关变量或函数名

g# - 向上模糊搜索

  • 功能: 向上查找包含该单词的部分匹配
  • 备注 : 类似 g* 但搜索方向向上

4. 手动查找

/word - 向下搜索

  • 功能: 向下搜索指定字符串
  • 使用示例 : 输入 /main 后按回车,查找 "main"
  • 提示: 支持正则表达式

?word - 向上搜索

  • 功能: 向上搜索指定字符串
  • 使用方法 : 类似 /,但搜索方向向上

n / N - 重复搜索

  • ​n​: 重复上一次搜索(同方向)
  • ​N​: 反方向重复上一次搜索
  • 常用场景: 连续查找多个匹配项

5. 标签跳转(需要 ctags)

Ctrl-] - 跳转到定义

  • 功能: 跳转到标签(函数/变量定义)
  • 前提条件: 需要生成 ctags 文件
  • 使用方法 : 将光标放在函数名上按 Ctrl-]

Ctrl-t - 返回上一位置

  • 功能: 跳回上一个标签位置
  • 作用: 相当于"返回"功能,可多次使用

6. 标记跳转

设置标记 - m{a-z}

  • 功能: 在当前位置设置一个字母标记
  • 使用示例 : ma 表示在当前位置设置标记 a
  • 范围: 可使用 a-z 共26个标记

跳转到标记

  • ​'a​: 跳转到标记 a 所在行(单引号)
  • ``a` : 精确跳转到标记位置,包括列(反引号)
  • 区别: 单引号跳到行首,反引号跳到确切的光标位置

快速参考表

类别 命令 功能描述 使用示例 / 备注
括号/结构匹配 % 跳转到匹配括号(),{},[] 在括号上按%可跳转另一端
[[/]] 上/下一个函数定义或代码块起始 适用于函数块快速跳转
[{/]} 跳转到当前代码块起始/结束(配合 matchit) 可配合if,for块跳转
精确单词搜索 * 向下查找光标下完整单词 在单词上按*,等同于/word<CR>
# 向上查找光标下完整单词 与*相反方向
模糊单词搜索 g* 向下查找包含该单词的部分匹配 例如g*log匹配logger、logfile等
g# 向上查找包含该单词的部分匹配 类似g*反方向
手动查找 /word 向下搜索字符串 输入/main后按n重复查找
?word 向上搜索字符串 类似/,但方向向上
n 重复上一次搜索(同方向) 常用于连续查找
N 反方向重复上一次搜索 与n方向相反
标签跳转 Ctrl-] 跳到标签(函数/变量定义),需 ctags 光标在函数名上按Ctrl-]跳转定义
Ctrl-t 跳回上一个标签位置 相当于"返回"功能
标记跳转 m{a-z} 设置一个字母标记 如ma表示在当前位置设置标记 a
'a 跳到标记 a 所在行 单引号跳整行
``a` 精确跳到标记位置(包括列) 反引号跳到确切光标位置
:delmarks a 删除标记 a
:marks 查看所有设置的标记

使用技巧

  1. 组合使用 : 可以将搜索命令与其他 Vim 命令组合,如 d/pattern 删除到匹配位置
  2. 搜索历史 : 按 / 或 ? 后,可用上下箭头查看搜索历史
  3. 高亮设置 : 使用 :set hlsearch 开启搜索结果高亮
  4. 忽略大小写 : 使用 :set ignorecase 进行大小写不敏感搜索
  5. 标记管理: 大写字母标记(A-Z)可跨文件使用

提示:这些命令是 Vim 导航的核心,熟练掌握后可大幅提高代码编辑效率。

相关推荐
左手の明天2 小时前
SLIP 协议封装与解析详解:原理、C 代码与实战案例
linux·c语言·开发语言·c++
꯭自꯭闭꯭3 小时前
达梦SQL优化相关
linux·运维·数据库·sql
一条破秋裤3 小时前
Linux 共享内存通信:POSIX 共享内存与 mmap
linux·运维·服务器
谷哥的小弟5 小时前
CentOS Stream浴火重生
linux·运维·centos
程序员-Benothing6 小时前
Shell输入输出详解:read、echo、printf、颜色输出
linux·运维·服务器
FPGA小徐6 小时前
从 NEMU 到 AbstractMachine:程序、运行时环境与 AM 完全解析
linux·运维·服务器
qetfw7 小时前
Debian Chrony 时间同步、RAID5 与 LUKS 磁盘加密配置
linux·debian
东城居士10 小时前
Linux驱动阻塞与非阻塞访问的理解
linux·嵌入式系统
..Dauntless..10 小时前
【Linux】进程地址空间初步理解
linux·运维·服务器
Julien200410 小时前
Docker 网络(一)
linux·运维·服务器·ssh·学习方法