VI和VIM

vi vim

linux有多重编辑器,但是在不同的distribution上不一样,vi基本是在每个distribution上都支持的。

vim是vi的增强版。vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计。

vi的三种模式:

vim编辑器的三种模式:一般模式、编辑模式和命令行模式。

在一般模式中可以进行删除、复制和粘贴的功能,但是无法更加明确的编辑文件内容。

从一般模式切换到编辑模式可以按下i、I、o、O、a、A、r、R键。具体说明如下,个人觉得只需要记住i就可以了。

  • i,I:进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。
  • a,A:进入插入模式。a为从目前光标所在处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。
  • o,O:进入插入模式。o为在下一行插入。O为在上一行插入。
  • r,R:进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。

从编辑模式切换到奥一般模式:ESC。

在一般模式中输入:、/、?三个中的任意一个可以将光标移到最下面的一行,也就是命令模式,在这个模式中可以提供查找数据的操作,读取、保存、大量替换字符、离开vii、显示行号等操作则是在此模式中完成的。

编辑模式与命令行模式之间是不能互相切换的。

在一般模式下,可以执行的命令有:

移动光标的命令:

  • PgDn键:下一页 (这个命令在编辑模式下也有效)
  • PgUp键:上一页(这个命令在编辑模式下也有效)
  • Home键:光标移动到这一行的第一个字符的前面(这个命令在编辑模式下也有效)
  • End键:光标移动到这一行的最后一个字符的后面(这个命令在编辑模式下也有效)
  • G:光标移动到最后一行
  • 1G或者gg:光标移动到第一行
  • 10G:光标移动到第10行
  • 输入10之后按下Enter键:光标往下移动10行。

查找和替换:

  • /word:向下寻找一个名称为word的字符串。
  • ?word:向上寻找一个名称为word的字符串。
  • n:重复上一个查找
  • N:反向重复上一个查找
  • :n1,n2s/word1/word2/g:在第n1行和n2行之间寻找word1这个字符串,并且将其替换为word2.
  • :1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.
  • :1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.且在替换前显示提示字符给用户确认是否需要替换。

示例::1,$s/trace.log/test.log/gc

删除复制粘贴

  • x,X:在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])。
  • dd:删除光标所在的一整行。
  • ndd:删除光标所在的向下n行。
  • yy:复制光标所在的一行。
  • nyy:复制光标所在的向下n行。
  • p,P:p为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行。
  • u:复原前一个操作。
  • [Ctrl]+r:重做上一个操作。
  • .:小数点,重复前一个操作

vim的功能

  • 块选择:

这个功能可以让我们复制一个矩形区域的内容,十分方便。

v:字符选择,会将光标经过的地方反白选择;

V:行选择;

Ctrl+v:块选择;

y:复制反白的地方;

d:删除反白的地方。

示例如下:

需要注意的是,粘贴时候也是粘贴在一个块的范围内,而不是以行为单位来处理的。

  • 多文件编辑

我们在两个或多个文件之间复制粘贴内容时,这个功能会让我们方便很多。

使用命令vim name1 name2 name3...(各个文件名之间用空格隔开)可以同时打开多个文件。

:n:编辑下一个文件;

:N:编辑上一个文件;

:files:列出目前vim打开的所有文件。

  • 显示行号:

:set nu  设置行号

:set nonu 取消行号

vi和vim的使用:

vi和vim是两个独立的命令,如果需要高亮或者块选择等程序编辑功能,那么使用vim命令。

有的系统直接用vim替换了vi。替换的方式是使用alias。

输入alias命令可以看到全部的昵称命名。确认里面是否有vi和vim的昵称替换规则。

 

原文地址:https://www.cnblogs.com/xiaolang8762400/p/7355294.html