一般模式 光标移动
H或向左方向键 光标向左移动一个字符
j 或向下方向键 光标向下移动一个字符
k 或向上方向键 光标向上移动一个字符
l 或向右方向键 光标向右移动一个字符
Ctrl + f 向下移动一页
Ctrl + b 向上移动一页
Ctrl + d 向下移动半页
Ctrl + u 向上移动半面
+ 光标移动到非空白行的下一行
- 光标移动到非空白行的上一行
n<space> 输入数字后按空格键,光标会向右移动到这一行的第n个字符0 数字0,移动到这一行的第一个字符处.$ 移动到这一行的最后一个字符处H 光标移动到当前屏的最上方的第一行L 光标移动到当前屏的最下方的那一行M 光标移动到当前屏的最中央的那一行G 光标移动到这个文件的第一行nG 光标移动到这个文件的第n行n<Enter> 光标向下移动n行一般模式 查找和替换/key 在光标之后查找名字为key 的字符串?key 在光标之前查找名字为key的字符串:n1,n2s/key1/key2/g 在n1和n2行之间查找key1的字符串,并将该字符串替换为key2:1,$s/key1/key2/g 从第一行到最后一行查找key1的字符串,并将该字符串替换为key2:1,$s/key1/key2/gc 从第一行到最后一行…., 并且在替换前提前用户确认替换一般模式 删除、复制和粘贴X,x X向前删除一个字符,x向后删除一个字符 nx 向后删除n个字符dd 删除光标所在的一整行ndd 删除光标所在的行向下n行d1G 删除光标所在行到第一行的所有数据dG 删除光标所在行到最后一行的所有数据yy 复制光标所在行nyy 复制光标所在行的向下n行n1G 复制光标所在行到第一行的所有数据nG 复制光标所在行到最后一行的所有所有数据p,P p为复制的数据粘贴到光标所在行的下一行,P为复制的数据粘贴到光标所在行的上一行J 为光标所在行和下一行的数据结合为一行u 恢复前一个动作 编辑模式i, I 在光标所在处插入输入的文字,后面的文字会向后退a,A 在当前光标所在行的下一行插入输入文字,后面的文字…o,O 插入新一行:在当前光标所在行的下一行处输入文字r,R r替换光标所指向的那个字符,R会一直替换光标所指向的字符,直到按Esc为止Esc 退出编辑模式,回到一般模式 命令行模式:w 将编辑的数据保存到文件中:w! 将编辑的数据强制保存到文件中:q 退出vi编辑器:q! 强制退出而不保存:wq 保存后退出,:wq! 强制保存后退出:w [filename] 将编辑数据保存到filename中:r [filename] 读入另一个文件的数据,将filename这个文件的内容添加到光标所在行的后面:set nu 显示行号:set nonu 取消行号:n1,n2 w [filename] 将n1到n2行的数据保存到filename这个文件中
H或向左方向键 光标向左移动一个字符
j 或向下方向键 光标向下移动一个字符
k 或向上方向键 光标向上移动一个字符
l 或向右方向键 光标向右移动一个字符
Ctrl + f 向下移动一页
Ctrl + b 向上移动一页
Ctrl + d 向下移动半页
Ctrl + u 向上移动半面
+ 光标移动到非空白行的下一行
- 光标移动到非空白行的上一行
n<space> 输入数字后按空格键,光标会向右移动到这一行的第n个字符0 数字0,移动到这一行的第一个字符处.$ 移动到这一行的最后一个字符处H 光标移动到当前屏的最上方的第一行L 光标移动到当前屏的最下方的那一行M 光标移动到当前屏的最中央的那一行G 光标移动到这个文件的第一行nG 光标移动到这个文件的第n行n<Enter> 光标向下移动n行一般模式 查找和替换/key 在光标之后查找名字为key 的字符串?key 在光标之前查找名字为key的字符串:n1,n2s/key1/key2/g 在n1和n2行之间查找key1的字符串,并将该字符串替换为key2:1,$s/key1/key2/g 从第一行到最后一行查找key1的字符串,并将该字符串替换为key2:1,$s/key1/key2/gc 从第一行到最后一行…., 并且在替换前提前用户确认替换一般模式 删除、复制和粘贴X,x X向前删除一个字符,x向后删除一个字符 nx 向后删除n个字符dd 删除光标所在的一整行ndd 删除光标所在的行向下n行d1G 删除光标所在行到第一行的所有数据dG 删除光标所在行到最后一行的所有数据yy 复制光标所在行nyy 复制光标所在行的向下n行n1G 复制光标所在行到第一行的所有数据nG 复制光标所在行到最后一行的所有所有数据p,P p为复制的数据粘贴到光标所在行的下一行,P为复制的数据粘贴到光标所在行的上一行J 为光标所在行和下一行的数据结合为一行u 恢复前一个动作 编辑模式i, I 在光标所在处插入输入的文字,后面的文字会向后退a,A 在当前光标所在行的下一行插入输入文字,后面的文字…o,O 插入新一行:在当前光标所在行的下一行处输入文字r,R r替换光标所指向的那个字符,R会一直替换光标所指向的字符,直到按Esc为止Esc 退出编辑模式,回到一般模式 命令行模式:w 将编辑的数据保存到文件中:w! 将编辑的数据强制保存到文件中:q 退出vi编辑器:q! 强制退出而不保存:wq 保存后退出,:wq! 强制保存后退出:w [filename] 将编辑数据保存到filename中:r [filename] 读入另一个文件的数据,将filename这个文件的内容添加到光标所在行的后面:set nu 显示行号:set nonu 取消行号:n1,n2 w [filename] 将n1到n2行的数据保存到filename这个文件中