Vi 的常用命令

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, xa~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)

参考资料:

原文地址:https://www.cnblogs.com/linkworld/p/8537117.html

时间: 2024-11-15 00:42:54

Vi 的常用命令的相关文章

Unix Linux vi vim 使用手册|vi vim 常用命令 详解

Unix Linux vi vim 使用手册 Vi 简介 Vi 是 Unix 世界里极为普遍的全萤幕文书编辑器,几乎可以说任何一台 Unix 机器都 会提供这套软体.Linux 当然也有,它的 vi 其实是 elvis(版权问题),不过它们都 差不多.熟悉 DOS 下的文书处理後,也许会感到 vi 并不好用:Unix 上也已经发展出 许多更新.更好用的文书编辑器,但是并不一定每一台 Unix 机器上都会安装这些额外 的软体.所以,学习 vi 的基本操作还是有好处,让你在各个不同的机器上得心应手.

vi/vim常用命令

vi/vim常用命令   命令模式 光标移动 h或 向左方向键 光标向左移动一个字符 j或 向下方向键 光标向下移动一个字符 k或 向上方向键 光标向上移动一个字符 l或 向右方向键 光标向右移动一个字符 Ctrl+f 屏幕向前翻一页(常用) Ctrl+b 屏幕向后翻一页(常用) Ctrl+d 屏幕向前翻半页 Ctrl+u 屏幕向前翻半页 + 光标移动到非空格符的下一列 - 光标移动到非空格符的上一列 n<space> 按下数字后再按空格键,光标会向右移动这一行的n个字符.例如20<sp

linux vi(vim)常用命令汇总(转)

前言 首先解析一个vim vi是unix/linux下极为普遍的一种文本编辑器,大部分机器上都有vi的各种变种,在不同的机器上常用不同的变种软件,其中vim比较好用也用的比较广泛.vim是Vi Improved的缩写,表示更好的vi.本文就说些比较有用.比较常用的命令,若能熟练运用这些命令,那么会发现编辑文件很大帮助,尤其作为开发人员,能够快速的提高开发效率. 说明 以下的例子中 xxx表示在命令模式下输入xxx并回车 以下的例子中 :xxx表示在扩展模式下输入xxx并回车 小括号中的命令表示相

Linux学习之Vi编辑器常用命令

VI编辑器常常简称为Vi(visual editor),它可以自行输入.删除.查找.替换.复制.粘贴.块操作等多功能编辑器.用户需要根据自己的需求进行定制,这个是其他编辑程序所没有的一个功能.vi 编辑器并不是一个排版程序,它不像Word或WPS那样可以对字体.格式.段落等其他属性进行编排,它只是一个文本编辑程序.没有菜单,只有命令,且命令繁多.vi有3种基本工作模式:命令行模式.文本输入模式和末行模式.. 基本上vi可以分为三种状态, 分别是 游标控制 k 游标向上移  (添数字 移动字符个数

【转】VI/VIM常用命令

原文网址:http://www.blogjava.net/woxingwosu/archive/2007/09/06/125193.html Vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在Dos上一样.它可以执行输出.删除.查找.替换.块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的.    Vi不是一个排版程序,它不象Word或WPS那样可以对字体.格式.段落等其他属性进行编排,它只是一个文本编辑程序.   

linux vi(vim)常用命令汇总

1 查找 /xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找其中xxx可以是正规表达式,关于正规式就不多说了. 一般来说是区分大小写的, 要想不区分大小写, 那得先输入:set ignorecase 查找到以后, 再输入 n 查找下一个匹配处, 输入 N 反方向查找 *(#) 当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的下(上)一个单词 同样, 再输入 n 查找下一个匹配处, 输入 N 反方向查找 g*(g#) 此命令与上条命令

linux vi编辑常用命令

vi编辑器中有三种状态模式 1.命令模式 2.输入模式 3.末行模式 三种模式间的相互转换 vi编辑器的启动与退出 直接进入编辑环境 $ vi 进入编辑环境并打开(新建)文件 $ vi myfile 退出vi编辑环境 输入末行命令放弃对文件的修改,并退出编辑器 :q! 文件保存与另存为 保存文件 保存对vi编辑器中已打开文件的修改 :w 另存为文件 将vi编辑器中的内容另存为指定文件名 :w myfile 退出vi编辑器的多种方法 未修改退出 没有对vi编辑器中打开的文件进行修改,或已对修改进行

vi编辑器常用命令总结

一.vi的模式:     编辑模式:键盘操作通常被解析为编辑命令:     输入模式:     末行模式:vim的内置的命令行接口,执行vim内置命令   编辑模式-->输入模式     i:当前光标处输入内容     I:在当前光标所在行的行首     a:在当前光标所在处的后面     A:在当前光标所在行的行尾输入     o:在光标所在行的下方新增一行空白行     O:在光标所在行的上方新增一行空白行 行间移动:         #G:第几行           G:最后一行 编辑操作

vi 编辑器常用命令

VI编辑器可以分为3种状态,它们分别是命令模式.输入模式以及末行模式,VI运行后默认进入命令模式. 命令模式:控制屏幕光标的移动,字符.单词或行的删除.替换,复制粘贴数据以及由此进入插入模式和末行模式. 输入模式:在命令模式下,用户输入的字符都会被VI当作命令解释执行.如果用户把输入的字符当作文本内容,则必须要先进入输入模式.在命令模式下按下 a,i,o键,即可进入输入模式.在输入模式下按下Esc键可返回命令模式. 末行模式:在命令模式下,按下“:”键即可进入末行模式,此时VI会在显示窗口的最后