vi 我要学会vi

工作前用的编辑器是Hbuilder,是因为 设计挺人性化的 护眼色 呀 提示呀 各种 ,工作之后 一段时间用sublime 因为大家都在用,装几个插件 也会有各种提示,之前依赖Hbuilder 的 本地服务器 ,后来 师傅告诉我在 npm install -g http-server后 也可以。就不那么依赖他了,最近干活 发现 同事 在用终端 直接 编辑 ,很是方便加牛* 之前 为了 交活 只是草草学了一点,现在趁着年底 活比较少 就来 边总结 边学习一下!


我在看其他人得总结时 总会 有些命令 自己输入了 没有反应,所以 我写一下 我的测试环境是mac ,……颜色加深的区域为命令。。我用的终端是iterm,命令中的str 表示希望用户 敲入的字符串

  • vi模式

  • 底行模式
    主要是对文件整体进行的操作,包括设置,查找

  • 插入模式
    是对文件内容进行的编辑

  • 命令行模式
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段

  • 可视模式
    选择文件的一部分内容,以便作比如删除,复制等工作

  • 我平时需要用到的部分命令

  • 底行模式下的命令
    :w存入文件,但不退出
    :wq存入并退出
    :q退出,如果对缓冲区进行过修改,则会提示
    :q! 强制退出 ,不做修改
    :e! 重新编辑当前文件,忽略所有的修改
    :set nu 显示行号
    ?str从光标所在处向上查找,n 下一个匹配项,N上一个匹配项
    /str从光标所在处向下查找,n 下一个匹配项,N上一个匹配项
    :tabe 文件路径 同时编辑多个文件 gt 进行切换不同Tab键
    :=显示总行号

    • 搜索与替换
      这是一个:ranges/pat1/pat2/g 基本的格式
      例子:%s/\s\+$// 表示删除多余空格
      1、range 是命令执行范围的指定,可以使用百分号(%)表示所有行, 使用点(.)表示当前行,使用美元符号($)表示最后一行。你还可以使用行号,例如10,20表 示第10到20行,.,$表示当前行到最后一行,.+2,$-5表示当前行后两行直到全文的倒数第五行,等等。
      s 表示其后是一个替换命令。
      2、pat1 这是要查找的一个正则表达式
      \s表示空格 \+表示一个或多个 $行末 ^行首
      3、part2 针对匹配项进行替换的字符串
      4、g 可选标志,带这个标志表示替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串。
    • 删除复制
      之前的是 s表示其后是一个替换命令,
      1、:n1,n2 co n3 将 n1 行到 n2 行之间的内容拷贝到第 n3 行下
      2、:n1,n2 m m3 将 n1 行到 n2 行之间的内容移至第 n3 行下。
      3、:n1,n2 d 将 n1 行到 n2 行之间的内容删除。
  • 命令行模式下的命令
    其实可以简称命令模式下的命令,因为 该模式下我们操作的是光标的位置 或者与光标有关的操作,并不会在底行或者任何位置显示命令,但是确实在进行操作

    • 命令模式与插入模式进行切换
      i进入插入模式后, 从光标当前位置开始输入文件
      a进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字
      o进入插入模式后, 从行首开始输入文字
      esc从插入模式切换为命令行模式
    • 移动光标
      键盘上的上下左右键就可以移动光标进行上下左右的移动,就可以替代vi本身的命令了
      gg 移到文章的开头
      G移到文章的结尾
      $移到行尾
      ^移到行首
      w跳到下个单词的开头
      e跳到下个单词的结尾
      b回到上个单词的开头
      #l 跳到改行的第#个位置
    • 删除
      x每按一次,删除光标所在位置的"后面"一个字符。
      #x表示删除光标所在位置的"后面"#个字符。
      X每按一次,删除光标所在位置的"前面"一个字符。
      #X表示删除光标所在位置的"前面"#个字符。
      dd删除光标所在行。
      #dd从光标所在行开始删除#行
      dib删除()里的内容
      dab删除()及其内的内容
      diB删除{}里的内容
      daB删除{}及其内的内容
    • 复制
      yy复制光标所在行到缓冲区。
      #yy表示拷贝从光标所在的该行"往下数"#行文字。
      p将缓冲区内的字符贴到光标所在位置。
    • 替换
      r替换光标所在处的字符。
      R替换光标所到之处的字符,直到按下「ESC」键为止。
    • 撤销
      u如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。
    • 跳至指定的行
      ctrl+g列出光标所在行的行号。
      #G表示移动光标至文章的第#行行首。
    • 缩进
      >> 行右移(缺省8空格--实际上将制表符插入到文本中)
      <<行左移8空格
    • 跳到变量的定义处
      gd 转到光标下局部变量的定义处
      Gd 转到光标下全局变量的定义处
    • 翻屏
      Ctrl+f 向前翻屏
      Ctrl+b 向后翻屏
      Ctrl+d 向前翻半屏
      Ctrl+u 向后翻半屏
  • 可视模式下的命令

    • 进入可视模式
      v一个字符一个字符地选。
      V一行一行地选。
      Ctrl+v它选中屏幕上的一个矩形区域。以按下Ctrl-v的位置为一个角,光标所在位置为它的对角。
    • 删除文本
      d删除所选中的部分。
      D删除所选中部分所在的行。即使没有把一行都选中,也把一行都删除。
    • 缩进
      >右缩进
      <左缩进
    • 合并
      J大写的j进行合并 若干行为一行
  • 插入模式

    • 自动补全
      ctrl + p 自动补全

ctrl+z暂时退出vi编辑进入终端命令行模式
fg返回vi进行编辑

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • vi使用方法详细介绍 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑 ...
    Michael_林阅读 840评论 0 8
  • 1. Vim的几种模式 正常模式:可以使用快捷键命令,或按:输入命令行。 插入模式:可以输入文本,在正常模式下,按...
    红线路亚湾阅读 17,281评论 0 1
  • 待整理~ 1、vim ~/.vimrc 进入配置文件 如果不知道vimrc文件在哪,可使用 :scriptname...
    spfanlost阅读 1,756评论 0 0
  • 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打...
    StoneHell阅读 233评论 0 0
  • 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开...
    八目朱勇铭阅读 1,852评论 0 0