您的位置:首页 > 其它

Vi 的常用命令

2018-03-10 00:42 148 查看

1. vi 的三种工作模式

  • 命令模式 打开文件首先进入命令模式, 是使用
    vi
    的入口;
  • 通过命令对文件进行常规的编辑操作, 例如: 定位,翻页,复制,粘贴,删除等;
  • 末行模式
      执行保存,退出等操作,是
      vi
      的出口;
    • :wq
      :表示
      write&quit
      ;
  • 编辑模式
      正常的编辑文字

    2. vi 操作文件

    • vi 文件名
      : 打开或新建文件;
    • vi 文件名 +行数
      : 打开文件并且定位行, 如果不指定行号,会直接定位到文件末尾;

    2.1 重复次数

    • 在命令模式下,先输入一个数字,再跟上一个命令,可以让该命令重复执行指定次数;

    2.2 移动和选择

    • 方向移动
      h
      : 左移
    • j
      : 下移
    • k
      : 上移
    • l
      : 右移
    • {
      : 按段移动,上移;以空行来区分段落;
    • }
      : 按段移动,下移;
    • w
      : 向后移动一个单词(word);
    • b
      : 向前移动一个单词
    • 0
      : 行首
    • ^
      : 行首,第一个不是空白字符的位置;
    • $
      : 行尾
  • 行数移动
      gg
      :文件顶部,
      15gg
      表示跳转到第15行;
    • G
      : 文件末尾,
      15G
      表示跳转到第15行;
    • :数字
      : 跳转到数字对应行数;
  • 屏幕移动
      ctrl + d
      : 向下翻半屏;
    • ctrl + u
      : 向上翻半屏;
    • ctrl + f
      : 向下翻一屏;(forward)
    • ctrl + b
      : 向上翻一屏;(back)
    • H
      : 屏幕顶部;(Head)
    • M
      : 屏幕中间;(Middle)
    • L
      : 屏幕底部;(Low)
  • 括号切换
      在程序世界中,
      ()
      []
      {}
      使用频率很高,而且都是成对出现的;
    • %
      : 括号匹配及切换;
  • 标记
      在开发时,某一块代码可能需要稍后处理,例如编辑,查看;
    • 此时,先使用
      m
      添加一个标记,这样可以在需要时,快速地跳转回来或者执行其他编辑操作;
    • 标记名称可以是
      a~z
      或者
      A~Z
      之间的任意一个字母;
    • 添加了标记的行如果被删除,标记同时被删除;
    • 如果在其他行添加了相同名称的标记,之前添加的标记也会被替换掉;
    • mx
      : 添加标记x,
      x
      a~z
      或者
      A~Z
      之间的任意一个字母;(mark)
    • 'x
      : 直接定位到标记
      x
      所在的位置

    2.3 编辑操作(命令模式)

    • 选中文本(可视模式) 学习复制命令前,应该先学会怎么样选中要复制的代码;
    • v
      : 按字符移动选中文本;
    • V
      : 按行移动选中文本,可以配合
      d
      ,
      y
      ,
      >>
      ,
      <<
      实现对文本块的删除,复制,左移,右移;
    • ctrl + v
      : 垂直方向选中文本;
  • 撤销和恢复撤销
      u
      : 撤销上次命令;(undo)
    • ctrl + r
      : 恢复撤销的命令;(redo)
  • 删除文本(类似于剪切操作)
      x
      : 删除光标后一个字符,相当于 Del;(cut)
    • X
      : 删除光标前一个字符,相当于 Backspace;
    • d(移动命令)
      : 删除移动命令对应的内容;例如
      d0
      : 删除光标前本行所有内容,不包含光标所在字符;
    • dw
      : 删除光标开始位置的字符,包含光标所在字符;
  • dd
    : 删除光标所在行;
      8dd
      : 表示从当前光标所在的行开始剪切8行;
  • D
    : 删除光标后本行所有内容,包含光标所在字符;
  • 复制和粘贴
      复制命令会将选中的文字保存在缓冲区;
    • 删除命令会将删除的文字删除的文字保存在缓冲区;
    • y(移动命令)
      : 复制; (copy)
    • yy
      :复制一行, 可以
      8yy
      复制8行;
    • p
      : 粘贴(paste)
  • 缩排和重复执行
      >>
      : 向右增加缩进;(一次在选中代码前增加4个空格)
    • <<
      : 向左减少缩进;
    • .
      : 重复上次命令;

    2.4 替换

    • r
      : 替换当前字符串(命令模式)
    • R
      : 替换当前行光标后的字符(替换模式)
      R
      命令可以进入替换模式,替换完成后,
      ESC
      可以回到命令模式;
    • 替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改;

    2.5 查找

    • /str
      : 查找str;
    • 查找到指定内容之后,使用
      Next
      查找下一个出现的位置:
      n
      : 查找下一个;
    • N
      : 查找上一个;
    • 如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可;
  • 单词快速匹配
      *
      : 向后查找当前光标所在单词;
    • #
      : 向前查找当前光标所在单词;

    2.6 查找并替换

    • vi
      中查找和替换命令,需要在
      末行模式
      下执行;
    • 格式:
      :%s///g
      ;
    • 全局替换:
      :%s/abc/123/g
      : 将所有的abc替换成123;
  • 可视区域替换
      先选中要替换文字的范围;
    • :'<,'>s/旧文本/新文本/g
  • 确认替换
      如果把末尾
      g
      改成
      gc
      ,在替换的时候,会有提示!
    • :%s/旧文本/新文本/gc
    • 提示语:
      y
      : 替换(yes)
    • n
      : 不替换(no)
    • a
      : 替换所有(all)
    • q
      : 退出替换(quit)
    • l
      : 替换最后一个(last),并把光标移动到行首;
    • ^E
      : 向下滚屏;
    • ^Y
      : 向上滚屏;

    2.7 插入命令

    • 进入
      编辑模式
      的命令:
      i
      : 在当前字符前插入文本;(insert)
    • I
      : 在行首插入文本;(insert)
    • a
      : 在当前字符后添加文本;(append)
    • A
      : 在行末添加文本;
    • o
      : 在当前行后面插入一空行;
    • O
      : 在当前行前面插入一空行;
    # 示例: 利用可视块模式给多行代码增加注释
    1. 在命令模式下,移动到要添加注释的第一行代码, 按 "^" 来到行首;
    2. 按 ctrl + v 进入可视块模式;
    3. 使用 j 向下连续选中要添加的代码行;
    4. 输入 I 进入编辑模式,并在行首插入, 注意,一定使用大写 I;
    5. 输入 # 也就是注释符号;
    6. 按下 ESC 返回到命令模式,返回之后,vi会在之前选中的每一行代码前插入 #;

    2.8 分屏命令

    • 属于
      vi
      的高级命令,可以同时编辑和查看多个文件;
    • 末行命令
      主要是针对文件进行的操作: 保存,退出,保存&退出,搜索&替换,另存,新建,浏览文件;
    • :e .
      : 会打开内置的文件浏览器,浏览当前目录下的文件;
    • :n 文件名
      : 新建文件;(new)
    • :w 文件名
      : 另存为,但是仍然编辑当前文件,并不会切换文件;(write) 在实际开发中,可以使用
      w
      命令阶段性的备份代码;
  • 分屏命令
      使用分屏命令,可以同时编辑和查看多个文件;
    • :sp [文件名]
      : 横向增加分屏;(split)
    • :vsp [文件名]
      : 纵向增加分屏;(vertical split)
  • 切换分屏窗口
      分屏窗口都是基于
      ctrl + W
      这个快捷键的,(w = window)
    • ctrl + w + w
      : 切换到下一个窗口;
    • ctrl + w + r
      : 互换窗口;(reverse)
    • ctrl + w + c
      : 关闭当前窗口,但是不能关闭最后一个窗口;(close)
    • ctrl + w + q
      : 退出当前窗口,如果是最后一个窗口,则关闭
      vi
      ;(quit)
    • ctrl + w + o
      : 关闭其他窗口;(other)


    参考资料:

  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: