文章目录
- 前言
- vi文本编辑器
- 三种模式
- 命令模式(Command mode)
- 移动光标命令
- 查询命令
- 切换到INTERT
- 切换到VISUAL
- 输入模式(Insert mode)
- 末行模式(Last line mode)
cat 文件名 ——查看文件
vi 文件名 ——编辑文件
vim 文件名 ——编辑文件
前言
不掌握vi/vim命令,都不好意思说自己会Linux命令。所以总结一下vim编辑器的常用命令,学会之后,在Linux总操作文件6的飞起。
vi文本编辑器
配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式。那么如何使用Linux字符操作界面中的文本编辑器——vi,以便更好地管理和维护系统中的各种配置文件。
vi是一个功能强大的全屏幕文本编辑工具,一直以来都作为类UNIX操作系统的默认文本编辑器。vim是vi编辑器的增强版本,在vi编辑器的基础上扩展了很多实用的功能,但是习惯上也将vim称为vi。
三种模式
vi是工作在字符终端环境下的全屏幕编辑器,因此编辑界面相对比较简单,并没有为用户提供鼠标操作和菜单系统,而是通过按键命令实现相应的编辑和操作功能。在vi编辑界面中可以使用三种不同的工作模式。分别是命令模式(Command mode),输入模式(Insert mode)和末行模式(Last line mode)。当然,在不同的模式中能够对文件进行的操作也不相同。
- 命令模式(Command mode)
- 输入模式(Insert mode)
- 末行模式(Last line mode)

命令模式(Command mode)
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
移动光标命令
| 命令 | 执行 |
|---|---|
| dd | 剪切一行 |
| 5dd | 剪切包括光标所在行向下的5行 |
| p | 在光标所在行下面复制 |
| gg/1G | 跳转到文件的第一行 |
| G | 跳转到文件的最后一行 |
| 5gg/5G | 跳转到文件的第5行 |
| $ | 跳到行末 |
| 0 | 跳到行首 |
查询命令
| 命令 | 执行 |
|---|---|
| /aaa | 在文件中查找aaa |
| n | 匹配下一个 |
| N | 匹配上一个 |
切换到INTERT
| 命令 | 执行 |
|---|---|
| a | 在当前光标位置之后插入内容。 |
| A | 在光标所在行的末尾(行尾)插入内容。 |
| i | 在当前光标位置之前插入内容。 |
| I | 在光标所在行的开头(行首)插入内容。 |
| o | 在光标所在行的后面插入一个新行。 |
| O | 在光标所在行的前面插入一个新行。 |
切换到VISUAL
| 命令 | 执行 |
|---|---|
| v | 进入visual视图模式 |
输入模式(Insert mode)
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
末行模式(Last line mode)
在命令模式下按下:(英文冒号)就进入了末行模式。
末行模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
| 命令 | 执行 |
|---|---|
| : | 在命令模式下,进入末行模式 |
| :w | 保存,指写入 |
| :q | 退出 |
| :! | 强制 |
| :w file | 将修改另外保存到file中,不退出vim |
| :w! | -强制保存,不退出 vim |
| :wq | -保存文件,退出 vim |
| :wq! | -强制保存文件,退出 vim |
| :q! | -不保存文件,强制退出 vim |
| :e! | -放弃所有修改,从上次保存文件开始再编辑 |
| :set nu | 显示行号 |
| :set nonu | 取消行号 |
按ESC键可随时退出末行模式。














![[SWPUCTF 2021 新生赛]re2](https://img-blog.csdnimg.cn/f8f1ebefff4645c69ca58cd8d65f8741.png)