• vi编辑器:-vi的使用方法的记录


    模式说明

    vi有三种模式:

    1. 一般指令模式
    2. 编辑模式
    3. 命令行模式

    注意:以下的模式切换案件都要是英文的,中文的是不生效的

    一般指令模式

    vi打开文件之后,默认就是在一般指令模式。

    常用操作:

    移动光标

    按键操作
    h、⬅向左移动光标
    j、⬇向下移动光标
    k、⬆向上移动光标
    l、→向右移动光标
    数字k向上移动指定数字行数,其他方向依次类推
    ctrl + f向下翻页
    ctrl + b向上翻页
    ctrl + d向下移动半页
    ctrl + u向上移动半页
    +移动到非空白字符的下一行
    -移动到非空白字符的上一行
    0移动到这一行最开始
    $移动到这一列最后
    G移动到文档最后
    gg移动到文档最开始
    n向下移动n

    搜索与替换

    按键操作
    /word在文档中查找光标之下的word 字符串
    n查找下一个word
    N查找上一个word
    :1,$s/word1/word2/g从文档开始到结尾,将word1 替换为 word2
    :1,$s/word1/word2/gc从文档开始到结尾,将word1 替换为 word2 ,替换时候需要用户确认
    :n1,n2s/word1/word2/g在文档n1n2 行中,将 word1 替换为 word2

    删除、复制与粘贴

    按键操作
    x删除一行中的后一个字符
    X删除一行中的前一个字符
    nxn为数字,表示连续向后删除n个字符,例如:向后删除10个字符:10x
    dd删除光标所在一整行
    ndd删除光标所在的向下n 行,例如要删除20行:20dd
    d1G删除光标所在行所有的数据
    dG删除光标所在行到最后的数据
    d$删除该行中光标所在位置之后的所有字符
    d0删除改行中光标所在位置之前的所有字符
    yy赋值光标所在行的内容
    nyy从所在行开始,向下复制n行,例如复制之后20列:20yy
    y1G复制当前行以及之前的所有内容
    yG复制当前行到最后的所有内容
    y0复制光标当前位置到行首的所有内容
    y$复制光标所在位置到行尾的所有内容
    p向下粘贴复制内容
    P向上粘贴复制内容
    u撤销;复原上一个动作
    ctrl + r反撤销
    .(点)重复上一个动作

    进入编辑模式

    按键操作
    i在光标当前位置开始编辑
    I在光标所在行第一个非空白字符编辑
    a在光标所在位置下一个字符进行编辑
    A从光标所在行最后一个字符开始编辑
    o在光标所在行下一行插入一行开始编辑
    O在光标所在行上一行插入一行开始编辑
    r替换光标所在位置的一个字符
    R一直替换光标所在位置的字符,直到按下esc 为止
    esc退出编辑模式,返回到一般指令模式

    编辑模式

    在一般指令模式下按下:i,o,a 等可以进入编辑模式,在编辑模式下可以编辑文本,在编辑模式下,左下角会有 -- INSERT -- 字样。
    esc 键返回一般命令模式,左下角的 -- INSERT -- 也会消失

    编辑模式,就是在文本里输入内容呀!


    命令行模式

    命令行模式主要针对文件进行一些指令操作,比如:保存(w),退出(q)
    一般指令模式 下按下 : 就可以进入命令行模式了。在命令行模式下可以输入一些指令。

    指令作用
    :w将编辑的内容保存到硬盘中
    :w!强制写入
    :q退出
    :q!不保存退出
    :wq保存并推出
    :ZZ若灭有改动,则不保存退出,若改动了则保存退出
    :w filename将文件另存为filename
    :r filenamefilename 的内容读取到当前位置
    :n1,n2 w filenamen1n2 行的内容写入到filename 文件中
    :! command暂时离开vi 到命令行下执行command 命令的显示结果
    set nu显示行号
    set nonu不显示行号
  • 相关阅读:
    Ceph分布式集群部署
    Python面向对象
    mmpose关键点(四):优化关键点模型(原理与代码讲解,持续更新)
    C语言错误:计算字符串中特定单词的出现次数
    MAUI使用Masa blazor组件库
    单链表的排序问题
    学C++跟着视频学还是跟着书学?
    Java强弱软虚4种引用
    后端开发总结(3):代码健壮性:容错处理+测试
    Java进阶之路--继承中的方法重写与属性覆盖
  • 原文地址:https://blog.csdn.net/weixin_43852058/article/details/127596188