vi file.txt 进入vi模式,默认为命令模式,命令模式移动光标。
i (insert):在光标前插入内容
a(append):在光标后添加内容
o(open new line):插入新一行
(Esc):(冒号) :先按ESC、再按冒号进入底线模式,相关命令如(:q!强制不保存退出、:q退出、:wq保存并退出、:w保存文件)

1、G:移动到文件的最后
2、gg:移动到文件的开头
3、0或^:移动到首行
4、$:移动到行末
5、光标的上下移动:方向键、kjhl(上、下、左、右)
6、ctrl+f:下一页 (f:forward)
7、ctrl+b:上一页(b:back)
x与X:del与backspace
3x:删除3个字符,数字代表多少次操作
注意:esc取消数字操作,如按了5,再按esc取消5
dw:删除光标所在处到词尾的内容
dd:删除光标所在行,3dd删除光标往下3行(含光标所在行)
yw:复制光标到词尾的内容
yy:复制光标所在行
p:粘贴(包括前面复制或删除操作的内容)
u:撤销(undo)
ctrl+r:连续撤销
r:取代光标所在处的字符
R:连续取代字符,直到按esc为止
set nu(number):显示行号
set nonu(no number):去掉行号
输入数字:跳转到指定行(如:20 跳转到20行)
/关键字:先按/,再输入要找的字
n:向下连续查找
N:向上连续查找
set ic:忽略大小写 (ignor case)
set noic:不忽略大小写
>在底线模式下输入“1,$/s/string/replace/g"会将全文的"string"字符串改为”replace“字符串
>或%s/string/replace/g
>1,$表示从第一行到最后一行
>s表示替换
>g表示每行全部替换
>1,20s/string/replace/g:将1到20行间的替换
># w filename:摘取某一段,另存为一个文件
    >#表示行号,如:30,50 w newfile
>:w filename(将文件保存为filename)
>:wq(保存并退出)
>:q!(强制退出,不保存修改)
>w!(强制写文件,如果该文件属性为只读,那么强制更改该文件并退出)
>:f(查看当前文件信息)
>:edit(在vi里面打开另一个文件,如:edit aaa.txt)
原文:https://www.cnblogs.com/wangxiuchun/p/12940725.html