• vim基本操作


    曾经听过如下关于vim的笑话:

    随机生成字符串最好的方式就是让新手退出vim编辑器。

    可见刚接触vim的人对于vim的使用可谓是浑身难受啊,不过由于在Linux的世界里,vim常常是作为内置的文本编辑器存在的。
    因此在非桌面环境中编辑文件就需要熟悉vim,这样才能得心应手的进行日常工作。

    三种编辑模式

    vim是vi的改进版,这里不做区分,统一用vim代替vi。

    1. 一般模式

    使用如下命令:

    vi demo.txt
    

    这样打开的一个文件模式就属于一般模式,该模式下可以使用上下左右键移动光标、删除、复制粘贴字符或者正行等,但是不__能插入__新的字符。

    image.png | left | 827x283

    1. 编辑模式

    在一般模式下无法编辑文件内容。可以通过在一般模式下按下如下的按键进入编辑模式:

    • i,I : i为当前光标处插入,I为当前行的第一个非空格字符插入;(类似Home + i)
    • a,A:a为当前光标下一个字符插入,A为当前行的最后一个字符插入;(类似End + i)
    • r,R:进入替换模式,r只会替换光标所在的字符一次,而R会一直替换直到按下Esc键;

    这么多进入编辑模式的按键,常用的就是__i和a,A__。

    1. 命令行模式

    一般模式进入命令行模式,输入: ? / 三个字符中的任意一个即可进入。
    该模式下的功能十分丰富,提供数据的查找、替换,文件保存,显示行号等文本编辑器的高级功能。

    如下图所示:按下:,输入命令wq即可保存当前的更改并退出编辑器。

    image.png | left | 764x338

    常见的快捷键

    一般模式下的常用按键:

    • 光标移动
      • 0或Home : 光标移动至当前行首;
      • $或End:光标移动至当前行尾;
      • G:移动的文件的最后一行;(常用)
      • nG:n为数字,移动到文件的第n行;例如20G移动到这个文件的第20行;
      • gg:移动到文件的第一行。相当于1G(常用)
      • n space:移动到这一行的第n个字符(第n列)
      • J:将光标所在行与下一行的数据和为一行,类似删除本行的
      • u:撤销上一次操作;(undo)
      • ctr+r:重做上一次操作,反撤销;(redo)
      • .:重复上一次操作,重复删除,重复粘贴等;
    • 删除、复制和粘贴
      • x,X:x为向后删除一字符类似del,X为前删类似backspace;
      • nx:后删n个字符
      • dd:删除当前行
      • ndd:删除当前行及以后的合计n行
      • d1G:删除光标所在的行到第一行的所有字符
      • dG:删除光标所在行到最后一行的所有字符
      • d$:删除光标到当前行的行尾之间的字符
      • d0
      • yy:y是复制,同删除;
      • nyy
      • y1G
      • yG
      • y0
      • y$
      • p,P:p是将复制的内容再光标下一行开始粘贴,P是在光标的上一行开始粘贴。
    • 查找
      • /pattern:进入命令模式,输入查找的正则pattern,向下查找下一个符合pattern的字符串。
      • ?patterb:向上寻找符合pattern的字符串;
      • n:按照相同的方向重复前一个查找的操作,next;
      • N:按照相反的方向重复前一个查找操作
    • 替换
      • :n1,n2s/w1/w2/g 在n1和n2行之间,寻找w1,用w2去替换。
      • :n1,n2s/w1/w2/gc 在n1和n2行之间,寻找w1,用w2去替换,替换之前需要询问用户;
      • :0,$s/p/P/gc
    • 命令行模式的文件保存、离开
      • :w : 将编辑的数据写入到磁盘文件中
      • :w! : 若文件的属性为只读的,强制写入该文件
      • :q : 如果对文件没做更改,则该命令直接退出编辑器,否则,退出失败,会提示对文件已经做修改。
      • :q! : 强制退出,则不会保存该次编辑的数据。
      • :wq : 保存并退出
      • :wq! : 强制保存后退出
      • ZZ:若文件没有更改,则不保存离开,否则,则保存后离开。
      • :w [filename]:将编辑的数据保存为另一个文件,相当于另存为。
      • :r [filename]:在编辑的数据中,读如另一个文件的数据,即将filename对应的文件内容追加到光标所在行后面。
      • :n1,n2 w [filename]:将n1到n2行的内容保存为filename这个文件
      • :! cmd:暂时离开vi,执行cmd。例如::! ls/home 即可在vi中查看/home下面的ls输出信息。
  • 相关阅读:
    [BUUOJ记录] [ZJCTF 2019]NiZhuanSiWei
    [BUUOJ记录] [BJDCTF2020]EasySearch
    [BUUOJ记录] [BJDCTF2020]The mystery of ip
    php版本:实现过滤掉广告、色情、政治相关的敏感词
    热门搜索词获取java版
    如何用代码挖局长尾关键词
    几行python代码解决相关词联想
    如何高效的完成中文分词?
    python 脚本撞库国内“某榴”账号
    搜索引擎之全文搜索算法功能实现(基于Lucene)
  • 原文地址:https://www.cnblogs.com/Spground/p/9594066.html
Copyright © 2020-2023  润新知