在Linux系统中,最流行的编辑器软件非vim莫属。在很多教程中,大家可能看到过"vi"编辑器的说法,其实"vim"是"vi"的增强版本,完全兼容vi的所有用法,且有更多扩展功能。
我们安装的minimal的系统版本,默认不带"vim"软件,首先需要安装一下:
sudo dnf install vim -yvim的四种模式
因为在ternimal中,没有”鼠标“的概念,因此需要一些辅助手段来完成文档的编辑。对于vim来说有4种工作模式,分别对应不同的功能,下面我来详细介绍。
正常模式(Normal Mode)
作用:默认进入的模式,用于导航、执行编辑命令(如复制、删除、替换等),不直接输入文本。
进入方式:启动 Vim 时默认进入;从其他任何模式按
Esc键返回。光标导航:
hjkl对应方向左下上右,空格也可以移动光标。行复制:
yy,复制当前光标所在行;3yy,复制光标行往下共3行。粘贴行:
p,将复制的行插入光标以下行。删除行:
dd,删除光标所在的行;3dd,删除光标行往下共3行;dG,删除光标行及之后所有行;dk,向下删除1行;dl,向上删除1行。行内删除:
dh,向左删除1个字符;dl,向右删除1个字符;de,删除字符串。
插入模式(Insert Mode)
作用:用于输入和编辑文本,类似普通文本编辑器的工作状态。
进入方式:在正常模式下按以下键:
i:在光标当前位置前插入;I:在光标所在行的行首插入;a:在光标当前位置后插入;A:在光标所在行的行尾插入;o:在光标所在行下方新建一行并插入;O:在光标所在行上方新建一行并插入。
在插入模式下,可以像在windows txt文档中一样编辑内容,回车/退格/删除 等用法都是一样的;但如果你想移动光标,因为没有鼠标的原因,需要退回正常模式,用 h j k l 键进行移动。
退出方式:按
Esc键返回正常模式。
命令行模式(Command-line Mode)
作用:执行命令(如保存、退出、查找、替换等),命令以冒号
:开头。进入方式:在正常模式下按
:(英文冒号),光标会跳到屏幕底部等待输入命令。常用命令示例:
:w保存文件;:q退出 Vim;:wq或:x保存并退出;:q!强制退出(不保存);:/keyword从当前位置向下搜索keyword,按n选中下一个,按N选中上一个;:?keyword从当前位置向上搜索keyword,按n选中下一个,按N选中上一个;:set nu显示行号;:
set paste从外部粘贴的文本会完全按照原始格式插入,避免被 Vim 的自动处理干扰;:s/abc/def用abc替换行中首次出现的def:s/abc/def/g用abc替换行中所有的def:n,m s/abc/def/g用abc替换从n到m行里所有的def:%s/abc/def/g用abc替换当前文件里所有的def:%s/abc/def/gc替换前需要确认
退出方式:执行命令后自动返回正常模式;若要放弃输入命令,按
Esc键返回。
可视模式(Visual Mode)
作用:用于选中一块文本(字符、行、块),以便对选中内容执行批量操作(如复制、删除、缩进等)。
进入方式:在正常模式下按以下键:
v:进入字符可视模式(按字符选中);V(大写):进入行可视模式(按行选中);Ctrl + v:进入块可视模式(按矩形块选中,适合批量编辑列)。
操作逻辑:进入后移动光标即可选中内容,选中后按相应命令(如
y复制、d删除)执行操作。示例:
批量添加注释:
Ctrl + v-->j移动指定行-->I进入编辑模式输入"#"-->Esc批量删除:
Ctrl + v-->hjkl移动选定区域-->d删除
掌握模式切换的核心是:任何模式下按 Esc 都能回到正常模式,而正常模式是切换到其他模式的 “起点”。
正常模式(默认)
├── 按 i/I/a/A/o/O → 插入模式(按 Esc 返回)
├── 按 : → 命令行模式(执行命令后自动返回)
└── 按 v/V/Ctrl+v → 可视模式(按 Esc 返回)