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

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

文章目录

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

本指南汇总了 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 导航的核心,熟练掌握后可大幅提高代码编辑效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/84850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓9.0系统修改定制化____系列 ROM解打包 修改 讲解 导读篇

专栏系列前言&#xff1a; &#x1f49d;&#x1f49d;&#x1f49d;本专栏作者从事rom系统修改以及手机维修 刷机多年。从当年山寨机开始。历经安卓4.--至目前的安卓15.合作伙伴遍及各类工作室以及PDA商家 私人玩友等。在广告机 平板 pda设备 会议机 车机的rom修改中略有经…

Vue3本地存储实现方案

在 Vue 3 中实现本地存储&#xff08;如用户配置数据&#xff09;&#xff0c;主要通过浏览器提供的 localStorage 或 sessionStorage API。以下是详细实现方案&#xff1a; 基础实现&#xff08;原生 API&#xff09; javascript 复制 下载 // 存储数据 localStorage.set…

计算机视觉与深度学习 | 2024年至2025年图像匹配算法总结(原理,公式,代码,开源链接)

图像匹配算法 一、核心算法分类与技术路线1. **传统局部特征 + 匹配优化**(鲁棒性强,适合资源受限场景)2. **端到端密集匹配网络**(高精度,适合复杂形变/弱纹理)3. **基于光流思想的匹配网络**4. **2024-2025年新趋势**二、核心开源工具库汇总三、典型代码流程(以LoFTR为…

瑞芯微 MIPI D-PHY 接收器(RX)驱动学习笔记

驱动文件位置 driver/phy/rockchip/phy-rockchip-mipi-rx.c 1 重要结构体 struct mipidphy_priv {struct device *dev;//表示与驱动程序关联的设备。它用于设备管理&#xff0c;如设备注册、注销等。struct regmap *regmap_grf;//用于映射和访问通用寄存器文件&#xff08;Gen…

MySQL从入门到DBA深度学习指南

目录 引言 MySQL基础入门 数据库基础概念 MySQL安装与配置 SQL语言进阶 数据库设计与规范化 数据库设计原则 表结构设计 MySQL核心管理 用户权限管理 备份与恢复 性能优化基础 高级管理与高可用 高可用与集群 故障诊断与监控 安全与审计 DBA实战与运维 性能调…

多个机器人同时加载在rviz及gazebo同一个场景中

1. 配置launch文件 gazebo的加载相对容易&#xff0c;但rviz中加载&#xff0c;需要构建完整的tf树&#xff08;world → map&#xff08;或map_merged&#xff09;→ odom → base_footprint → base_link → base_scan&#xff09;才能正常显示&#xff0c;launch文件主要是…

Text2SQL、Text2API基础

你有一个能力超强但“不太懂行”的助手&#xff08;大语言模型LLM&#xff09;。它能说会道&#xff0c;知识渊博&#xff0c;但它&#xff1a; 不懂你的数据库&#xff1a; 不知道你的数据库里有哪些表&#xff0c;表里有哪些字段&#xff0c;这些字段代表什么意思。不懂你的…

JDK 8u231安装教程 - Windows 64位下载安装及环境变量配置指南

下载安装包 把jdk-8u231-windows-x64.exe这个文件下载下来&#xff0c;下载链接&#xff1a;https://pan.quark.cn/s/a610ca7e5e9d&#xff0c;随便放哪儿&#xff0c;比如桌面或者下载文件夹。 双击运行安装 找到下载好的那个exe文件&#xff0c;直接双击打开。可能会弹个窗口…

LatentSync V8版 - 音频驱动视频生成数字人说话视频 更新V1.6版模型 支持50系显卡 支持批量 一键整合包下载

LatentSync 是字节跳动开源的一款"AI口型同步神器"&#xff0c;简单来说就是能让视频里的人物嘴巴动得和声音完美匹配的工具。比如你给一段配音&#xff0c;它能自动调整视频人物的嘴型&#xff0c;按照配音里的声音说出来&#xff0c;就像真人说话一样自然。简单说就…

从一组线段中得出四边形的算法

原始的需求是使用OpenCV的直线检测算法&#xff08;例如LSD&#xff09;之后&#xff0c;得到一组线段。然后需要从这些线段得到类似矩形的四边形&#xff0c;用于检测经过透视变换的矩形物体。这些线段不一定首尾相接&#xff0c;彼此之间可能相交或有一定距离。 以下是需求图…

提示词Prompts(2)

摘要&#xff1a; 本文介绍了langchain.prompts中基础的提示词模板的高级用法&#xff0c;包括利用PipelinePrompt组合Prompt使用&#xff0c;多模态场景、动态占位符的使用等进行了介绍。 文章目录 1. 背景2. PipelinePrompt2.1 组合两个Prompt模板2.2 多模态模板 3. 聊天提示…

服务器代码知识点补充

目录 UdpServer: 观察者模式: remove_if算法 管道补充: 文件的标准输出 ,标准输入,标准错误 UdpServer: 数据接收模块关心Adduser 和Deleuser 两个模块 线程池关心Route模块 将这三个方法注册进服务器 ,但是有临界区问题(线程池与数据接受模块可能同时访问用户管理模块,所…

R语言缓释制剂QBD解决方案之二

药物层优化研究 在药物层工艺中水溶剂蒸发起到重要的作用。湿的环境会使丸子聚集&#xff0c;而干的环境影响药物与MCC的粘合。输入变量如气流量&#xff0c;喷雾速率&#xff0c;雾化压力&#xff0c;和产品温度对MCC沉着和包衣溶剂蒸发的平衡有影响。进行了带3个中心点的24-…

Html实现图片上传/裁剪/马赛克/压缩/旋转/缩放

cropper下载 https://download.csdn.net/download/dongyan3595/90970115 前端代码 <!doctype html> <html lang"en"> <head><base href"/aishop/"><meta name"viewport" content"widthdevice-width, initial…

springboot项目中整合高德地图

一&#xff1a;高德开放平台的使用 高德开放平台 | 高德地图API 注册高德地图账号 认证填写个人信息&#xff1a; 认证方式选择“个人认证开发者”即可&#xff0c;然后完善信息 认证成功之后&#xff0c;再次进入控制台&#xff0c;创建关于地图的应用 创建Key&#xff08;y…

鸿蒙开发-视频学习及实用中的一些小结

1.extend 和 styles extend是在styles基础上进行了升级 使用的时候extend是全局的。 styles不加function 局部 加了就是全局。 2.builder 中要引用comp组件 需要在外层嵌套布局 3.ability之间的跳转 want需要加&#xff1b; 4. as 类型断言 &#xff01;跟在xxx! 表示…

网盘直链解析网页版

不支持百度网盘、阿里网盘。 123&#xff0c;蓝奏云&#xff0c;可道云什么的都可以 源码下载地址&#xff1a;https://www.123865.com/s/X91lVv-3l90v

AXI4-Stream Clock Converter IP

一、参考说明 1.没有专门对AXI4-Stream Clock Converter IP说明的文档&#xff1b; 2.可以参考PG085文档&#xff1b; 3.可以参考PG035文档&#xff1b; 二、IP的作用 1.用于stream数据流再不同的时钟域之间的可靠性传输&#xff1b; 2.支持跨时钟域的场景&#xff1b; 3.内部…

NineData 社区版 V4.2.0 发布!新增MySQL与PostgreSQL互相迁移,SQL管理Milvus,安装更高效

NineData 社区版 V4.2.0 正式发布&#xff01;本次更新通过镜像轻量化部署、新增 3 条迁移链路、新增支持 Milvus 向量数据库等核心升级&#xff0c;轻松实现数据库迁移容灾、实时数据集成分析、AI 向量数据管理等场景需求。社区版支持本地离线部署&#xff0c;严格保障数据隐私…

如何安装使用qmt脚本跟单聚宽策略

登录知识星球&#xff0c;下载获取 解压后&#xff0c;登录大qmt&#xff0c;将策略导入其中&#xff0c; 然后修改参数&#xff1a; 点击免密改参 totalcash&#xff1a;该策略使用资金总量 per&#xff1a;每只股票占比资金额 举例&#xff0c;当前出信号&#xff0c;每只…