VI简介

vi简介

0.前言

  vi出自单词“visual”,含义是能够在视频终端上用移动光标来进行编辑。
在图形界面编辑器出现之前是行编辑器的天下,用户每天只能在一行文本上进行编辑。使用行编辑器的时候,用户需要告知编辑器是在哪一行进行操作
比如添加或者删除。由于vi融合了强大的恒编辑器ex,vi用户也可以同时使用行编辑器的命令。

  大多数Linux发行版配备的并不是真正的vi,而是vi的加强版–vim(Vi
Improved的编写).Vim是传统的Unix系统vi的实质性改良版。通常,vim的硬连接指向Linux系统的vi名称。

  对于vi或者vim的使用还是遵循顺能生巧的硬道理。本文只是一些简单操作教程。

1.基本操作

1.1 启动和退出vi

  在终端中输入vi启动编辑,界面如下:

  avatar

  输入以下命令退出vi

:q
:q!  # 如果因为某些原因vi不能退出,通过此命令强制退出

  如果用户不能确定vi所处的状态,可以按两次Esc返回初始状态。

1.2 编辑模式

  在vi下创建文件vi test.txt,正常情况下屏幕显示如下所示:
  avatar

  开头的波浪线代表来了该行没有任何内容,此时的test.txt为空文件,在左下角可以发现New File的字样。需要注意的是vi分为命令以及插入两种模式,在自动进入vi,编辑器处于的是命令模式,此时每个 键盘按键都是一个命令。

1.3 插入模式

  如果需要对文件添加内容,首先需要按i/I进入插入模式,界面左下角所示:

  avatar

1.4 文件保存

 &emisp;修改文件之后,需从插入模式切换到命令模式,输入ex命令(也就是按下’:’),这样就会有一个冒号出现在屏幕的最底部。

  要将文件写入硬盘,在冒号后输入w,命令如下:

:w   # 保存
:wq  # 保存并退出
:wq! # 保存并强制退出

1.5 光标操作

  在命令模式下,为了使用操作者只在键盘上就可以完成操作,
vi提供了很多光标的操作方式(为了方便进行行操作以及定位代码位置,在命令模式下输入:set number,即可显示行号)其中一些与less命令共用,其中部分操作方式如下表:

光标操作
右方向键右移一位
左方向键左移一位
下方向键下移一位
上方向键上移一位
0回归本行开头
H移动到屏幕顶部行首
M移动到屏幕中间行首
L移动到屏幕底部行首
nM移动到屏幕顶端往下的第n行
nL移动到屏幕底部往上的第n行
Ctrl+G显示目前行信息
nG跳到第n行

1.6 基本编辑

  插入、删除、剪切、复制等构成基本的文本编辑操作,vi也以其特殊的方式支持这些操作。
同时vi还可支持有限形式操作撤销操作,在命令模式下按U就可以撤销用户最后一步操作。

1.6.1 添加文本

  除了上文中使用i进入插入模式。但是光标不能跳出行末,所以单纯使用i并不能完成在文本
末尾添加内容的任务。为此vi提供了在行末添加文本的a命令,末尾并使用a命令时,光标就会越过文本的末尾,同时vi进入插入模式。
这样用户就可以在行末添加文本。

1.6.2 插入一行

  插入文本的另一种方式就是在文本中重开一行,即在两行现存的文字中间插入空白行并进入插入模式,如下表所示:

命令开行
o当前行的上方插入
O当前行的下方插入

  在下图中在"word"后使用O命令在下面插入空白行。

  avatar

1.6.3 删除文本

  vi中使用到的删除命令主要如下:

命令删除内容
x当前字符
nx当前字符和之前n-1个字符
dd删除当前行
ndd删除当前行和之后的n-1行
dW当前字符到下一个单词的起始
d$当前字符到当前行的末尾
d0当前字符到当前行的起始
d^当前字符到当前行下一个非空字符
dG当前字符到文件末尾
dnG当前行到文件的第20行
1.6.4 剪切、复制和粘贴文本

  命令d不只是删除文本,而是在"剪切"文本,使用p将内容粘贴到光标之后
;使用P命令将内容粘贴到光标之前.

  采用y命令实现对内容的复制,命令的范例基本与d命令类似。

1.7 查找和替换

  vi还提供了在一行内或者整个文件中,根据条件进行搜索。vi还可以执行
文本替换工作

1.7.1 行内搜索

  命令f在行内进行搜索,并将光标移动到搜索的下一个指定字符

1.7.2 文件内搜索

  命令/可以完成对单词或者短语的搜索。在命令模式下,输入/

屏幕的底部会出现"/"符号,接下来只需要输入想要输入的字符即可,搜索到的目标短语如下图:

  avatar
  输入Enter已结束,光表会移动到目标短语之前,接下来,输入n,光标将继续输入到
下一个目标短语,对于采用正则表达式的方式此处不作介绍。

1.7.3 全局搜索和替换

  vi使用ex命令来执行几行之内或者整个文件中的搜索和替换操作。采用下面命令可进行
短语替换。

:/s/hello/hi/gc

  上述的命令解释如下表:

组成含义
:冒号用于启动一条ex命令
%确定操作范围,%简介代表了从文件第1行到最后一行。还可以使用1,3这种数字确定范围
s指定具体操作–替换
Line/line搜索和替换文本
g代表全局,如果缺失,那么只替换每一行第一个符合条件的实例
c替换之前请求用户确定,缺失的话直接替换

  使用c后,vi在编辑器中会出现确认选择:

功能键含义
y执行操作
n跳过操作
a执行此次替换后的所有替换
q或者Esc停止替换
llast的缩写,执行此次替换并退出替换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值