vi/vim跳转到指定行命令
在 vi/vim 中跳转到指定行有多种高效方法,以下是最常用的操作方式:
一、基础跳转:行号 + 命令
-
命令模式下直接输入行号
按Esc
切换到命令模式后,输入:行号
并回车。例如,输入:100
会直接跳转到第 100 行。 -
使用
G
快捷键- 绝对行号跳转:在命令模式下输入
行号G
(如100G
),无需按回车即可跳转。 - 快速定位首尾行:
gg
跳转到文件首行。G
(大写)跳转到文件末行。
- 绝对行号跳转:在命令模式下输入
二、打开文件时直接定位
在终端中启动 vi/vim
时指定行号:
vim 文件名 +行号
# 示例:打开 file.txt 并跳转到第 65 行
vim file.txt +65
若行号超过文件总行数,光标会自动定位到最后一行。
三、显示行号辅助定位
-
临时显示行号
在命令模式下输入:set nu
(nu
是number
的缩写),文件左侧会显示行号。
例如:1 #!/bin/bash 2 echo "Hello World" 3 exit 0
-
关闭行号
输入:set nonu
即可隐藏行号。 -
永久显示行号(推荐)
编辑用户配置文件~/.vimrc
(若不存在则新建),添加一行:set nu
保存后,每次打开
vim
都会显示行号。
四、进阶技巧:相对行号与百分比跳转
-
相对行号(以当前行为基准)
输入:set relativenumber
后,行号会显示为相对于当前行的偏移量。例如,当前行是第 20 行,上方显示-5
,下方显示+3
,此时输入5j
会向下跳 5 行。 -
按文件比例跳转
输入:百分比%
可跳转到文件的指定比例位置。例如::50%
跳转到文件中间位置。:25%
跳转到文件四分之一处。
五、错误处理与验证
-
检查行号是否显示
若跳转失败,先确认是否已执行:set nu
显示行号。 -
验证行号范围
按Ctrl+G
查看当前行号和文件总行数,确保输入的行号在有效范围内。例如:"file.txt" 3 lines --100%-- 显示当前行是第 3 行,总行数 3
六、可视化模式下的跳转
- 先跳转再选中文本
- 按
Esc
进入命令模式,输入:行号
跳转到目标行。 - 按
V
(大写)进入行可视化模式,此时可通过j/k
键上下选中多行文本。
- 按
七、常见场景示例
-
编辑大文件时快速定位
打开文件后,直接输入100G
跳转到第 100 行修改代码。 -
修复编译错误
若编译器提示第 45 行有错误,可执行:vim code.c +45
直接定位到错误行。
-
批量操作前定位
例如,需要删除第 20 到 30 行:- 输入
20G
跳转到第 20 行。 - 输入
10dd
删除接下来的 10 行(即第 20-29 行)。
- 输入
通过以上方法,你可以在 vi/vim
中高效定位到任意行,大幅提升编辑效率。建议优先掌握 :行号
和 行号G
这两种核心操作,再逐步探索相对行号和百分比跳转等进阶技巧。