$vi file
使用Escape键返回命令模式。
0 跳到一行的开始
$ 跳到一行的结束
n+ 向下跳n行
n- 向上跳n行
H 移到屏幕最上面一行
L 移到屏幕最下面一行
G 跳到文件最后一行
:set nu/nonu 显示/隐藏行号
:xx 达到xx行
yy 把当前行放入缓冲区。nyy把当前行开始的n行放入缓冲区
p 将缓冲区内容取到光标后面(所在行的下面一行)
P 将缓冲区内容取到光标前面(所在行的上面一行)
u 恢复上一次的修改。
x 删除光标所在的字符;nx删除光标所在字符开始的n个字符;删除内容放入缓冲区
dd 删除光标所在行;ndd删除光标所在行开始的n行;删除内容放入缓冲区
:first,last d 删除first行到last行;删除内容放入缓冲区
D 删除光标所在行光标后面的内容
J 把下一行内容加到本行行尾
i 在光标之前开始输入文本
a 在光标之后开始输入文本
o 在光标所在行后插入一空行
O 在光标所在行前插入一空行
:first,last copy dest 拷贝first到last行的内容插入到dest行下面
:first,last move dest 移动first到last行的内容插入到dest行下面
:r filename 读入文件filename的内容插入到光标所在行的下面
:s/int/long/ 替换当前行的第一个int为long
:s/int/long/g 替换当前行的所有int为long
:s@long/int@int/long@g 使用@作为分隔符;替换当前行所有long/int为int/long
:first[,last]s/int/long 替换first行[到last行];first/last为.表示当前行,$表示最后一行
:%s/int/long 替换所有行
:w 回写修改后的文件。
:w filename 当filename不存在时,把修改后的文件存为文件filename。当文件filename存在时,报错
:q 退出vi,若用户对编辑的文件有所修改,系统不会让用户使用q命令退出。
:q! 退出vi而不管是否对文件有改动。
:wq 保存对文件的修改并退出vi
:sh 启动sh,从sh中返回可用exit或ctrl+d
/string 向前搜索string n 查找下一个匹配的字符串
?string 向后搜索string n 查找下一个匹配的字符串