4、vi和vim编辑器

vi和vim编辑器

  • 基本介绍
  • 模式介绍
  • 常用指令

一、vi和vim的基本介绍

1.1、概念

  vi和vim都是Linux中的文本编辑器。vi适用于文本编辑,而vim更适用于coding。
  需要注意的是vim是vi的升级版,vim完全兼容vi的所有指令,可以以字体颜色辨别语法的正确性,同时还拥有一些新的特性。

1.2、Vim的新特新

  1. 多级撤销:在vi里面只能撤销上次命令,而在vim中可以无限制的撤销。
  2. 易用性:vi只能运行于Linux中,而vim可以运行于Linux、windows、mac等多种操作系统
  3. 语法加亮:vim可以使用不同的颜色来分辨语法的正确性,更加方便编程。
  4. 可视化操作:vim不经可以在终端里面运行,同时还可以在windows、mac、os等环境里运行。

二、Vi和Vim的模式介绍

2.1、Vi模式

  1. 命令行模式 (command mode/一般模式)

  任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动vi命令,进入编辑器时,也是处于该模式下。
  在该模式下,用户可以输入各种合法的vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,vi会响铃报警。

  1. 文本输入模式 (input mode/编辑模式)

  在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令行模式下,按”ESC”键即可。

  1. 末行模式 (last line mode/指令列命令模式)

   在命令行模式下,用户按“:”键即可进入末行模式下,此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行(Enter)完后,vi自动回到命令模式。

【图】

2.2、Vim模式

  1. 正常模式(Normal-mode)

  启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。

  1. 插入模式(Insert-mode)

  在正常模式中按下i, a, o, I,A,O键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。

  1. 命令模式(Command-mode)

  在正常模式中,按下:(英文冒号)键,会进入命令模式。 在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。命令执行(Enter)完后,vi自动回到正常模式/终端。

  1. 可视模式(Visual-mode)

  在正常模式中按下v,V,+v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便.
在这里插入图片描述

三、Vi和Vim的常用指令

在这里插入图片描述
在这里插入图片描述
​ 由于Vi和Vim在命令上几乎相同,所以以下都已Vim为例。

3.1、模式转换

  1. 正常模式——>>插入模式
    • i:在当前光标所在字符的前面,转为插入模式
    • a:在当前光标所在字符的后面,转为插入模式
    • I:在当前光标所在行的行首,转为插入模式
    • A:在当前光标所在行的行尾,转为插入模式
    • o:在当前光标所在行的下方,新建一行,并转为插入模式
    • O:在当前光标所在行的上方,新建一行,并转为插入模式
  2. 正常模式——>>命令模式
    • :(英文冒号):转换为命令模式
  3. 正常模式——>>可视化模式
    • v:转换为可视化模式
  4. ???——>>正常模式
    • ESC:转换为正常模式(可视化模式下需要两次ESC)

3.2、保存退出(命令模式)

  1. w:保存
  2. q:退出(在没有修改文件内容/已经保存修改内容的前提下直接退出)
  3. wq:保存退出
  4. q!:不保存退出
  5. wq!:强制保存退出
  6. w 文件名:在当前目录下另存为

正常模式下,可以使用快捷键shift+z保存并退出

3.3、移动光标(正常模式)

  1. 单字符移动
    • h:左
    • I:右
    • j:下
    • k:上
    • nh:向左移动n个字符
  2. 以单词为单位移动
    • w:移动至下一个单词的首字母
    • e:移动至当前单词(没有就下一个单词)的尾字母
    • b:移动至当前单词(没有就前一个单词)的首字母
    • nw:向下移动n个单词
  3. 行内跳转
    • 0:绝对行首
    • ^:行首的第一个非空白字符
    • $:绝对行尾
  4. 行间跳转
    • gg:第一行
    • G:最后一行
    • nG:跳转至第n行
  5. 命令模式
    • .:表示当前行
    • $:最后一行
    • n:第n行
    • +n:向下的第n行

3.4、翻屏(正常模式)

  1. Ctrl+f:向下翻一屏
  2. Ctrl+b:向上翻一屏
  3. Ctrl+d:向下翻半屏
  4. Ctrl+u:向上翻半屏

3.5、复制字符

  1. 正常模式

    复制:

    • yy:复制当前行
    • nyy:以当前行为起始行,复制n行

    粘贴:

    • p:粘贴到光标的后面
    • P:粘贴到光标的前面
  2. 可视化模式

    复制:

    • y:复制当前行
    • ny:以当前行为起始行,复制n行

    粘贴:

    • p:粘贴到光标的后面
    • P:粘贴到光标的前面

3.6、删除字符(正常模式)

  1. x:删除光标所在处的单个字符
  2. nx:删除光标所在处及向后的共n个字符
  3. d$或D:从当前光标处删除至行尾
  4. d^:从当前光标处删除至行首
  5. dd::剪切当前光标所在行(可以当作删除来用)
  6. ndd::删除包括当前光标所在行在内的n行

3.7、替换字符

  1. r:替换单个字符(按完r在按你要替换的字符即可)
  2. R:替换多个字符(从你要替换的位置开始替换,直至你退出正常模式)

3.8、撤销编辑操作

  1. u:撤销前一次操作(vi只能撤销一次)
  2. nu:直接撤销最近的n次操作

3.9、将另外一个文件的内容填充在当前文件夹中

  1. :r /path/test.txt :填充到当前文件所在光标的后面

3.10、修改vim配置文件

  1. vim ~/.vimrc:修改当前用户的vim配置文件
  2. vim /etc/vimrc:修改所有用户的vim配置文件

3.11、扩展(命令模式)

  1. 显示/不显示行号
    • :set nu //显示
    • :set number //显示
    • :set nonu //取消
  2. 设置语法高亮
    • :syntax on //开启
    • :syntax off //关闭
  3. 分屏
    • :vsp xxx.x //将两个文件垂直分屏
    • :ctrl+w w //切屏

显示

  • :set number //显示
  • :set nonu //取消
  1. 设置语法高亮
    • :syntax on //开启
    • :syntax off //关闭
  2. 分屏
    • :vsp xxx.x //将两个文件垂直分屏
    • :ctrl+w w //切屏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值