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 插件使用,可与 iffor 等代码块跳转

2. 精确单词搜索

* - 向下精确搜索

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

# - 向上精确搜索

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

3. 模糊单词搜索

g* - 向下模糊搜索

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

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匹配loggerlogfile
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 导航的核心,熟练掌握后可大幅提高代码编辑效率。

相关推荐
淮北4948 小时前
vim学习进阶
学习·编辑器·vim
maosheng11468 小时前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken8 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2919 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C9 小时前
CPU Cache
linux·cache
Hoshino.419 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
播播资源11 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry11 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
lay_liu12 小时前
Linux安装redis
linux·运维·redis
寂柒13 小时前
序列化与反序列化
linux·网络