zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Creating a generic Web Parts for hosting ASP.NET User Controls
    Speed Up SQL Server Apps 提高SQL Server应用程序的运行效率 (Part 1)
    How to use CreateChildContorls method inherited from System.Web.UI.Control
    How to quickly access Web Part Management Page
    SQL Script tips for MS SQL Server
    How to enable single signon service on the SPS
    A brief summary of UML & Rational Rose – Use Case Diagram, Part II
    Borland Together for Visual Studio.Net V2.0 安装问题
    Speed Up SQL Server Apps 提高SQL Server应用程序的运行效率 (Part 2)
    体验ReSharper V1.0 for VS.Net 2003 Part I
  • 原文地址:https://www.cnblogs.com/chacha51/p/13764859.html
Copyright © 2011-2022 走看看