vi编辑器有以下三种模式:
命令行模式:用户在用vi编辑文件时,最初进入的为该模式。以进行复制、粘贴等操作。
插入模式:进行文件编辑,按ESC键可以回到命令行模式。
底行模式:光标位于屏幕的底行。可以进行文件的保存、查找、替换、列出行号等。
命令 | 功能 |
a | (Append)进入编辑模式状态,从当前光标之后的位置开始插入键盘输入的字符 |
i | (Insert)进入编辑状态,从光标之后的位置插入键盘输入字符 |
o | (open)进入编辑状态,并插入一新行,从行首开始输入文字 |
Esc | 进入命令状态 |
:! command | 在vi中执行外部命令,按回车键继续返回vi界面工作 |
O | (open)进入编辑状态,并向上插入一新行,从行首开始输入文字 |
A | 从当前的行尾开始输入文字 |
I | 从当前的行首开始输入文字(注释) |
: wq (输入「wq」,存盘并退出vi)
: q! (输入q!, 不存盘强制退出vi)
:w保存文件但不退出
:x保存文件并退出
:w 文件名(另存为这个文件名,不退出)
:q退出没有修改过的文件,如果文件修改了没有保存,则此命令无效
:r 文件名(读入文件名指定的文件内容插入到光标)
【N】x | 删除从光标位置开始的连续N个字符(并复制到编辑缓冲区) |
【N】dd | 删除从光标位置开始的连续N个行(并复制到编辑缓冲区) |
【N】yy | 复制从光标位置开始的连续N个行到编辑缓冲区 |
p或P | 从编辑缓冲区复制文本到当前光标所在位置(粘贴)p复制在光标所在行的下面,P复制在光标所在行的上面 |
u | Undo取消上一次操作(即恢复功能) |
h | 方向键,向左移动光标一个字符的位置,相当于左键 |
j | 方向键,向下移动光标一个字符的位置,相当于下键 |
k | 方向键,向上移动光标一个字符的位置,相当于上键 |
l | 方向键,向右移动光标一个字符的位置,相当于右键 |
:N | 移动光标到第N行(N待定) |
1G | 移动光标到文件的第一行 |
G | 移动光标到文件的最后一行 |
:set number | 设置显示行号 |
:set nonumber | 取消显示行号 |
查找:/string 查找字符串
n继续查找向下
N继续查找向上
支持正则表达式:/^the /endl
替换命令:
利用:s命令可以实现字符串的替换
:s/str1/str2 表示的是在光标当前行,把当前行中的str1替换成str2,只能替换一个
:s/str1/str2/g 表示的是在光标当前行中把所有的str1替换成str2。
:.,$ s/str1/str2/g 替换的范围变成了光标当前位置到最后一行
:1,$ s/str1/str2/g 替换的范围变成了第一行位置到最后一行
:%s/str1/str2/g 全部范围
:n,ms/str1/str2/g 替换范围为n到m行
剪切和复制命令:
y0-将光标至行首的字符拷入剪贴板
y$-将光标至行尾的字符拷入剪贴板
d0-将光标至行首的字符剪切入剪贴板
d$-将光标至行尾的字符剪切入剪贴板
:range y-块复制(替换命令的范围一样)
:range y-块剪切(替换命令的范围一样)
记录自己学嵌入式的历程,如果有大佬看到有错误的地方还请指正,谢谢了。