• VIM 编辑器的使用


    VIM 编辑器的使用

    欢迎来到 来到大浪涛天的博客

    VIM 编辑器的使用

    1. vim:模式化的编辑

    2. 基本模式:

    • 编辑模式

    • 命令模式

    • 输入模式

    • 末行模式:

    • 内置的命令行接口

    3. 模式转换:

    3.1 编辑模式 --> 输入模式

    • i: insert, 在光标所在处输入;
    • a: append, 在光标所在处后面输入;
    • o: 在当前光标所在行的下方打开一个新行;
    • I:在当前光标所在行的行首输入;
    • A:在当前光标所在行的行尾输入;
    • O:在当前光标所在行的上方打开一个新行;

    3.2 输入模式 --> 编辑模式

    • ESC

    3.3 关闭文件:

    • :q 退出
    • :q! 强制退出,丢弃做出的修改;
    • :wq 保存退出
    • :x 保存退出
    • :w /PATH/TO/SOMEWHERE
    • ZZ: 保存退出;

    4. 打开文件:

    vim [OPTION]... FILE...
    +#: 打开文件后,直接让光标处于第#行的行首;
    +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
    vim +/^fi /tmp/grub2.cfg

    5. 字符跳转:

    • 字符间跳转:
      h(左), j(下), k(上), l(右)
      COMMAND:跳转由#指定的个数的字符;注意是先按数字再按向哪个方向跳转的方向键来完成。
    • 单词间跳转:
      w:下一个单词的词首
      e:当前或下一单词的词尾
      b:当前或前一个单词的词首
      COMMAND:由#指定一次跳转的单词数
    • 行首行尾跳转:
      ^: 跳转至行首的第一个非空白字符;
      0: 跳转至行首;
      $: 跳转至行尾;
    • 行间移动:
      #G:跳转至由#指定行;
      G:最后一行;
      1G, gg: 第一行;

    6. vi 编辑命令

    字符编辑:

    • x: 删除光标处的字符;
      #x: 删除光标处起始的#个字符;
      xp: 交换光标所在处的字符及其后面字符的位置;
    • 替换命令(r, replace)
      r: 替换光标所在处的字符
    • 删除命令
      d: 删除命令,可结合光标跳转字符,实现范围删除;
      d$: 删除光标到行尾的所有字符
      d^: 删除光标到行首(行首第一个非空白字符)的所有字符
      d0: 删除光标到行首的所有字符
      dw:删除光标都下一个单词的词首
      de:删除到下一个单词的词尾
      db:删除到上一个单词的词首
      #COMMAND
      dd: 删除光标所在的行;
      #dd:多行删除;
    • 粘贴命令(p, put, paste):
      p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面;
      P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面;
    • 复制命令(y, yank):
      y: 复制,工作行为相似于d命令;
      y$ :复制内容到行尾
      y0:复制内容到行首
      y^:复制内容到行首
      ye:复制内容到下一个单词的词尾
      yw:复制到下一个单词
      yb:复制到下一个单词
      #COMMAND
      yy:复制行
      #yy: 复制多行;
    • 改变命令(c, change)
      c: 修改
    • 编辑模式 --> 输入模式
      c$: 删除光标到词尾内容并转为输入模式
      c^:删除光标到词首(非空白字符)的内容并转为输入模式
      c0:删除光标到词首的内容并转为输入模式
      cb:删除光标到上一个单词的词首并转为输入模式
      ce:删除到下一个单词的词尾并转为输入模式
      cw:删除到下一个单词的词首并转为输入模式
      #COMMAND
      cc:删除并输入新内容
      #cc:
    • 可视化模式:
      v: 按字符选定
      V:按行行定
      Note:经常结合编辑命令;
      d, c, y
      撤消此前的编辑:
      u(undo):撤消此前的操作;
      #u: 撤消指定次数的操作;10u撤销前 10步的操作
      .:重复此前的操作
      撤消此前的撤消:
      Ctrl+r
      重复前一个编辑操作:.
    • 翻屏操作:
      Ctrl+f: 向文件尾部翻一屏;
      Ctrl+b: 向文件首部翻一屏;
      Ctrl+d: 向文件尾部翻半屏;
      Ctrl+u:向文件首部翻半屏;
    • vim中的末行模式,内建的命令行接口
      1 . 地址定界
    :start_pos,end_pos
    #: 具体第#行,例如2表示第2行;
    #,#: 从左侧#表示行起始,到右侧#表示行结尾;后可以直接加命令(y,d,p,r插入),不要加空格,表示选定的行用该命令进行处理
    #,+#: 从左侧#表示的行起始,加上右侧#表示的行数;
    .: 当前行
    $: 最后一行
    .,$-1
    %:全文, 相当于1,$
    /pat1/,/pat2/:
    从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束;
    (数字),/pat/
    /pat/,$
    pat为标准的正则表达式
    使用方式:
    后跟一个编辑命令
    d 删除
    y 复制
    w /PATH/TO/SOMEWHERE: 将范围内的行另存至指定文件中;
    r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容;
    1. 查找
      /PATTERN:从当前光标所在处向文件尾部查找;
      例如 /<r..t>
      ?PATTERN:从当前光标所在处向文件首部查找;
      n:与命令同方向;
      N:与命令反方向;
    2. 查找并替换
      s: 在末行模式下完成查找替换操作
      s/要查找的内容/替换为的内容/修饰符
      要查找的内容:可使用模式
      替换为的内容:不能使用模式,但可以使用1, 2, ...等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容;
    eg :.,$s/root/ROOT/g
    eg 1,$s/R(..)T/r1t/g

    修饰符:
    i: 忽略大小写
    g: 全局替换;默认情况下,每一行只替换第一次出现;
    &:可以引用前面匹配到的所有内容
    eg %s/l...x/&er/g
    查找替换中的分隔符/可替换为其它字符,例如

    s@@@
    eg %s//etc//var/g
    还可以这样 %s#/etc#/var#g
  • 相关阅读:
    【MongoDB】MongoDB服务器搭建(Unix/Linux)
    【MongoDB】MongoDB VS SQL数据库
    【谷歌市场安装】Google Play 闪退问题解决
    【安卓面试题】简述一下Android系统的架构?
    【安卓面试题】Activity和Task的启动模式有哪些?每种含义是什么?举例说明各自的应用场景
    【AR】Vuforia App key is missing.Please get a valid key
    备忘录
    docker 学习笔记
    java -jar 参数前后位置说明
    SaltStack实现动态文件分发,支持脚本换行,中文乱码
  • 原文地址:https://www.cnblogs.com/chacha51/p/13764859.html
Copyright © 2020-2023  润新知