linux下vim编辑器(三) 搜索,删除,复制,粘贴

  • A+

vi编辑器是所有Unix及Linux系统下标准的编辑器,对Unix及Linux系统的任何版本,vi编辑器是完全相同的。vim是vi的升级版,增加了一些功能,对vi命令是完全兼容的。在一些基本命令上两者应该是一样的。

一.vim撤销,重复命令

  • 撤销,重复执行(这些命令很重要,类似于后悔药的作用)

    命令 命令功能 使用度
    [Esc] 由编辑模式或者命令行模式返回一般指令模式 高频
    u 撤销上次操作 高频
    [Ctrl]+r 当我们用u进行撤回,发现撤回多了怎么办,使用[Ctrl]+r进行回退,撤销u的操作,相当于将命令按顺序一步一步重做 高频
    . 重复上次操作 高频

二.vim查找文本

  • 文本查询,在命令行模式(在一般模式下使用/,进入命令行模式)下可以快捷的将光标定位到我们需要编辑的文本处

    命令 命令功能 使用度
    /word 从光标向下寻找一个名称为 word 的字符串 高频
    /^word 从光标向下寻找一个以名称为 word开头的字符串 中频
    /word$ 从光标向下寻找一个以名称为 word结尾的字符串 低频
    ?word 从光标向上寻找一个名称为 word 的字符串 低频
    n 重复上次的查找指令 高频
    N 相反方向重复上次的查找指令 高频
  • 若查询的字符串在文件中不存在,文件左下角会出现Pattern not found:字样
  • 正常情况下查询字符串是严格区分大小写的,若想切换忽略大小写设置,输入如下

    如果想忽略大小写,则输入命令 ":set ic";调整回来输入":set noic"
    ic为ignore case缩写
  • 若在查询的字符串中出现 \、*、?、$ 等特殊符号,使用转义字符\进行转义

三.vim替换文本

  • 文本替换,我们可以快捷的替换单一字符,也可以批量替换字符串

    命令 命令功能 使用度
    r 替换光标所在位置的字符 高频
    R 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按“Esc”可以结束 高频
    :n1,n2s/word1/word2/g n1与n2为数字。在第n1与n2列之间将word1替换为word2 高频
    :1,$s/word1/word2/g 从第一列到最后一列将word1替换为word2,全文替换 高频
    :1,$s/word1/word2/gc g后加c,指令一行一行取代,且在取代前询问再确定(confirm) 低频
    :s/word1/word2/g 当前光标所在行,进行行内取代 高频

四.vim删除文本

  • 文本删除

    命令 命令功能 使用度
    (n)x/(n)X x 为向后删除一个字符(相当于[del]按键),X为向前删除一个字符(相当于[backspace]倒退键),添加n表示向前向后删除n个字符(包含本字符) 高频
    d0 那个是数字的 0 ,删除光标所在处,到该列的最前面一个字符 低频
    d$ 或者 D 删除光标所在处,到该列的最后一个字符 低频
    (n)dd 删除当前行,若添加n,表示向下删除n行(包含本行) 高频
    d(n)G 若不添加n,则代表删除光标向下所有文本,若添加n,n为行号,删除光标到n行之间的文本(包括本行) 低频
    d(n)gg 若不添加n,则代表删除光标向上所有文本,若添加n,n为行号,删除光标到n行之间的文本(包括本行) 同dnG 低频
    :n1,n2d 删除n1到n2行之间的文本内容 低频
  • 注意,被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 "p" 键,就可以将刚才删除的内容又粘贴到此处。

五.vim复制粘贴文本

  • 文本复制粘贴

    命令 命令功能 使用度
    (n)yy 复制光标所在的那一列,若添加n复制光标所在向下n列 高频
    p/P p为将已复制的数据在光标下一列贴上,P则为贴在光标上一列,若复制的是行内字符串,则粘贴的时候p为字符后,P为字符前 高频
    :n1,n2 copy n3 或 :n1,n2 copy co n3 将n1,n2行的数据复制到n3行下面,n1,n2,n3都是行号 高频
    :n1,n2 move n3 或 :n1,n2 m co n3 将n1,n2行的数据剪切到n3行下面,n1,n2,n3都是行号 高频
    ygg 复制光标到第一行之间所有的文本 低频
    yG 复制光标到最后一行之间所有的文本 低频
    y(n)G 或者 y(n)gg n为行号,复制光标到n行之间的文本(包括本行) 高频
    y0 复制光标所在的那个字符到该列行首的所有数据 低频
    y$ 复制光标所在的那个字符到该列行尾的所有数据 低频
    J 将光标所在列与下一列的数据结合成同一列 低频
zhangfeng

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: