在当前 Vim 会话中临时开关行号:按 Esc 进入 Normal 模式,输入 :set number(开启)或 :set nonumber(关闭),仅对本次会话生效;如需每次启动默认显示行号,需在 ~/.vimrc 中添加 set number。

怎么在 Vim 当前会话里临时开关行号
直接生效,不改配置文件,适合快速调试或临时查看。
进入 Normal 模式(按 Esc),然后输入以下命令:
-
:set number或简写:set nu→ 开启行号 -
:set nonumber或:set nonu→ 关闭行号
注意:这些设置只对当前 Vim 进程有效,退出再重开就恢复默认(无行号)。
怎么让 Vim 每次启动都默认显示行号
编辑用户级配置文件 ~/.vimrc,这是最常用、最安全的做法。
如果文件不存在,用 vim ~/.vimrc 新建;存在则直接编辑。在文件末尾添加:
set number
保存退出后,下次启动 Vim 就自动带行号了。不需要重启终端,也不影响系统级配置。
常见错误:
- 误写成
set nummber(多一个 m)→ 启动时静默失败,行号不出现 - 写到了
/etc/vimrc但没加 sudo → 文件实际没保存成功 - 用了
set nu但 Vim 版本太老(如 tiny 版)→ 可能不识别缩写,建议统一用set number
为什么 :set number 没反应?常见卡点
不是命令错了,而是环境或状态干扰了效果。
检查这几项:
- 确认你在 Normal 模式(不是 Insert 或 Visual 模式)——按一下
Esc最保险 - 终端窗口太窄,行号被截断看不见 → 试着横向拉宽终端再试
- 用了某些插件(比如
nvim-tree或自定义 statusline)覆盖了左侧显示区域 → 行号其实开了,但被遮住了 - 当前 buffer 是特殊类型(如
:help、:terminal或 netrw 目录列表)→ 这些 buffer 默认禁用行号,:set number无效
验证是否真生效:执行 :set number?,Vim 会回显 number 或 nonumber。
相对行号和混合行号怎么开
绝对行号(1,2,3…)只是基础。开发时更常用的是相对行号(显示“距当前行偏移多少”),方便配合 j/k 和数字跳转。
启用方式:
-
:set relativenumber或:set rnu→ 只显示相对行号 -
:set number relativenumber→ 混合模式:当前行显示绝对行号,其余显示相对行号
混合模式最实用,但注意:一旦开了 relativenumber,:set nonumber 不会关掉它,得额外加 :set norelativenumber 或 :set nornu。
这个细节容易忽略——很多人以为关了 number 就万事大吉,结果行号还“飘”在那儿。

















