当前位置: 首页 > news >正文

vi/vim跳转到指定行命令

vi/vim 中跳转到指定行有多种高效方法,以下是最常用的操作方式:

一、基础跳转:行号 + 命令

  1. 命令模式下直接输入行号
    Esc 切换到命令模式后,输入 :行号 并回车。例如,输入 :100 会直接跳转到第 100 行。

  2. 使用 G 快捷键

    • 绝对行号跳转:在命令模式下输入 行号G(如 100G),无需按回车即可跳转。
    • 快速定位首尾行
      • gg 跳转到文件首行。
      • G(大写)跳转到文件末行。

二、打开文件时直接定位

在终端中启动 vi/vim 时指定行号:

vim 文件名 +行号
# 示例:打开 file.txt 并跳转到第 65 行
vim file.txt +65

若行号超过文件总行数,光标会自动定位到最后一行。

三、显示行号辅助定位

  1. 临时显示行号
    在命令模式下输入 :set nununumber 的缩写),文件左侧会显示行号。
    例如:

    1   #!/bin/bash
    2   echo "Hello World"
    3   exit 0
    
  2. 关闭行号
    输入 :set nonu 即可隐藏行号。

  3. 永久显示行号(推荐)
    编辑用户配置文件 ~/.vimrc(若不存在则新建),添加一行:

    set nu
    

    保存后,每次打开 vim 都会显示行号。

四、进阶技巧:相对行号与百分比跳转

  1. 相对行号(以当前行为基准)
    输入 :set relativenumber 后,行号会显示为相对于当前行的偏移量。例如,当前行是第 20 行,上方显示 -5,下方显示 +3,此时输入 5j 会向下跳 5 行。

  2. 按文件比例跳转
    输入 :百分比% 可跳转到文件的指定比例位置。例如:

    • :50% 跳转到文件中间位置。
    • :25% 跳转到文件四分之一处。

五、错误处理与验证

  1. 检查行号是否显示
    若跳转失败,先确认是否已执行 :set nu 显示行号。

  2. 验证行号范围
    Ctrl+G 查看当前行号和文件总行数,确保输入的行号在有效范围内。例如:

    "file.txt" 3 lines --100%-- 显示当前行是第 3 行,总行数 3
    

六、可视化模式下的跳转

  1. 先跳转再选中文本
    • Esc 进入命令模式,输入 :行号 跳转到目标行。
    • V(大写)进入行可视化模式,此时可通过 j/k 键上下选中多行文本。

七、常见场景示例

  1. 编辑大文件时快速定位
    打开文件后,直接输入 100G 跳转到第 100 行修改代码。

  2. 修复编译错误
    若编译器提示第 45 行有错误,可执行:

    vim code.c +45
    

    直接定位到错误行。

  3. 批量操作前定位
    例如,需要删除第 20 到 30 行:

    • 输入 20G 跳转到第 20 行。
    • 输入 10dd 删除接下来的 10 行(即第 20-29 行)。

通过以上方法,你可以在 vi/vim 中高效定位到任意行,大幅提升编辑效率。建议优先掌握 :行号行号G 这两种核心操作,再逐步探索相对行号和百分比跳转等进阶技巧。

http://www.lryc.cn/news/607213.html

相关文章:

  • 达梦数据库权限体系详解:系统权限与对象权限
  • Js引用数据类型和ES6新特性
  • X2Doris是SelectDB可视化数据迁移工具,安装与部署使用手册,轻松进行大数据迁移
  • 向量投影计算,举例说明
  • rhcsa笔记大全
  • 华锐矩阵世界平台与海外客户洽谈合作
  • 网络协议之路由是怎么回事?
  • [buuctf-misc]百里挑一
  • 雷达微多普勒特征代表运动中“事物”的运动部件。
  • SD-WAN在煤矿机械设备工厂智能化转型中的应用与网络架构优化
  • Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
  • forceStop流程会把对应进程的pendingIntent给cancel掉
  • C++ --- stack和queue的使用以及简单实现
  • 【AI问答】PromQL中interval和rate_interval的区别以及Grafana面板的配置建议
  • UE5 动态扫描波
  • python入门第一天---变量+数据类型及注释的使用
  • SpringAI智能客服Function Calling兼容性问题解决方案
  • LRU缓存淘汰算法的详细介绍与具体实现
  • 简单打包应用
  • pve 删除集群
  • AI+向量化
  • 超算中尝试安装dify(失败)
  • Windows编译安装ffmpeg和sdl
  • 电子电气架构 --- 软件项目变更管理
  • Squid服务配置代理
  • 荣耀平板儿童限制
  • 温度影响的材料合成与生长-属于动力学控制还是热力学控制
  • 美团进军折扣超市,外卖未平、超市大战再起?
  • 什么是三防平板电脑?三防平板有什么作用?
  • Qt-----初识