四种模式
在日常的使用中,Linux并没有像Windows一样很方便的可视化界面,通常需要记很多的命令,复杂难记,今天我以不同模式的方式跟大家梳理哪些命令在哪种模式下使用,方便记忆。
 
 vi/vim共分为四种模式,命令行模式、编辑模式、末行模式、可视化模式。
一、命令行模式
使用vi/vim编辑器时,默认处于命令行模式。
在该模式下可以移动光标位置,翻屏,可以通过快捷键对文件内容进行复制-粘贴;剪切-粘贴/删除;撤销与恢复等操作。

表格中所说的当前行均表示光标所在的行。
- 移动光标/翻屏
 
| 按键 | 说明 | 
|---|---|
| gg | 移动光标到首行 | 
| G | 移动光标到末行 | 
| n<Enter> | 光标向下移动n行 | 
| 行号 + G | 移动光标到指定行,例如5G | 
| ctrl + b(before) | 向上翻屏 | 
| ctrl + f(after) | 向下翻屏 | 
| ctrl + u(up) | 向上翻半屏 | 
| ctrl + d(down) | 向下翻半屏 | 
- 复制/剪切/删除-粘贴等
 
| 按键 | 说明 | 
|---|---|
| yy | 复制当前行 | 
| n + yy | 当前行开始复制n行,如5yy | 
| yG | 当前行以下全部复制(光标在首行时复制全部) | 
| dd | 剪切/删除当前行(下一行上移) | 
| n + dd | 从当前行剪切/删除n行(下一行上移) | 
| D | 剪切/删除当前行(下一行不上移) | 
| p(小写) | 在当前行下方粘贴 | 
| P(大写) | 在当前行上方粘贴 | 
| dG | 当前行以下剪切/删除(光标在首行是全部) | 
说明:从严格意义来讲,删除命令就是剪切,如果不粘贴就是删除,粘贴了就是剪切。
- 撤销/恢复
 
| 按键 | 说明 | 
|---|---|
| u(undo) | 撤销 | 
| ctrl + r(redo) | 恢复之前的撤销操作 | 
| p(小写) | 在当前行下方粘贴 | 
| P(大写) | 在当前行上方粘贴 | 
二、编辑模式
在命令行模式下,我们通过i,a,o,O字母按键即可进入到编辑模式。

| 按键 | 说明 | 
|---|---|
| a | 在光标之后插入 | 
| i | 在光标之前插入 | 
| o | 在当前行的下一行插入 | 
| O | 在当前行的上一行插入 | 
编辑完文本,按下ESC即可进入到命令行模式。
三、末行模式
在命令行模式下,按下:或者/进入到末行模式。

在末行模式下,我们可以文件保存、退出、查找与替换、显示行号等等。
- 保存与退出
 
| 命令 | 说明 | 
|---|---|
| :w | 保存 | 
| :q | 退出(一般先保存后退出) | 
| :wq | 保存并退出 | 
| :q! | 未保存强制退出 | 
- 搜索
 
| 命令 | 说明 | 
|---|---|
| /关键字<Enter> | 搜索(n:下一个/N:上一个) | 
- 查找与替换
 
# 当前行的第一个匹配有效
:s/要替换的关键词/替换后的关键词 + <Enter>
 
# 当前行的所有匹配有效
:s/要替换的关键词/替换后的关键词/g + <Enter>
 
# 整个文档的每行第一个匹配有效
:%s/要替换的关键词/替换后的关键词 + <Enter>
 
# 整个文档的所有匹配有效
:%s/要替换的关键词/替换后的关键词/g + <Enter>
 
- 行号
 
| 命令 | 说明 | 
|---|---|
| :set nu | 显示行号 | 
| :set nonu | 取消行号 | 
末行模式执行完毕,按下ESC键进入到命令行模式。
四、可视化模式
在命令行模式,有三种方式进入可视化模式,v、V或者Ctrl+v,用法各不同。



这三种进入方式,可以按照需求选择。
- 复制
 
在可视化模式(v方式进入)。
- 通过键盘的↑ ↓ ← →键来控制要选择的文本区域
 - 按下y(d)键进行复制(剪切)
 - 按下p(P)键进行粘贴。
 
- 多行注释
 
在可视化模式(Ctrl+v方式进入)。
- 在行首使用上下键选择需要注释的多行
 - 按下键盘(大写)“I”键,进入插入模式
 - 输入#号注释符
 - 输入完成后,连续按两次Esc即可完成添加多行注释
 
- 去除多行注释
 
在可视化模式(Ctrl+v方式进入)。
- 使用键盘上的方向键的上下选中需要移除的#号注释
 - 直接按Delete键即可完成删除注释的操作
 
本文由mdnice多平台发布















