vi的三种工作模式:命令模式、编辑模式、末行模式
    命令模式:默认模式
    这种模式主要用来查看命令
    less:在less命令里面的快捷键,基本能使用
    移动光标:
    1.使用方向键移动光标
    两边的左右h l
    中间 jk表示下上
    滚动:i
    向下滚动、向前滚动一页 ctrl+f(forward/front)
    向后/向前滚动一页ctrl+b(back)
    向上滚动半页:ctrl + u (up)
    向下滚动半页:ctrl + d (down)
    跳转:
    跳转到首行小写gg
    跳转到具体的某行:nG
    其中n表示你要跳转的具体某一行
    加入取得负数,则会跳转到绝对值的行号
    比如-2G 表示跳转到第2行
    eg:跳转到10行
    10G:跳转到第10行
    30G:跳转到第30行
    1G:跳转到首行
    G:移动到文档的最后一行

    按屏幕位置键
    H(head):表示移动到当前屏幕最上方的字符
    M(middle):表示移动到当前屏幕中间的字符
    L(last):表示移动到当前屏幕尾行

    按照字符移动光标
    w(word):按照单词移动,一次向后移动一个单词位置,光标落在下一个单词的第一个字符
    b(begin):按照单词移动,一次向前移动一个单词位置,光标落在上一个单词的第一个字符
    e(end):一次向后移动一个单词位置,光标落在下一个单词的最后一个字符
    一次移动多个单词, nw,ne,nb
    其中n表示一次移动的单词个数
    eg:10w一次向后移动10个单词
    2w一次向后移动两个单词
    按照字符移动:使用空格键一次向后移动一个字符
    n:空格键 一次移动多个字符

    在命令模式下编辑操作的快捷键
    yy:复制当前行(常用)
    nyy:将当前行及其以下n-1行
    dd:删除当前行
    ndd:删除当前行,再往下删除到n行
    d1G:删除第一行到当前行的内容
    dG:删除当前行到最后一行的内容
    y1G:复制第一行到当前行
    yG:复制当前行到最后一行
    paste:粘贴
    p:粘贴到当前行的下一行
    P:粘贴到当前行的上一行
    np:多次粘贴: 一次粘贴n行
    10p:向下粘贴10行
    按字符复制:
    y0:表示当前光标位置至行首的字符数据
    ys:表示复制光标当前位置至行
    编辑模式:在命令模式下进入编辑模式 可以按住键盘上i a o键进入

    撤销:
    使用小写的u,undo是撤销的操作

    查找与替换:
    语法:在命令模式下输入
    :开始行,结束行s/要搜索的内容/要替换的内容/g
    eg:比如我们要将第一行 到 第三行的students 替换为 teacher
    :1,3s/students/teacher/g
    如果要替换开始到结束?
    image.png
    :1,$s/students/teacher/g 搜索第一行到最后一行的students单词替换为teacher单词
    :q:退出
    wq:保存退出
    q!:表示强制退出
    ZZ: 保存退出00
    wq 文件名 :另存为
    ZQ:不保存退出
    image.png
    image.png