Unix / Linux-vi编辑器教程

在本章中,我们将了解vi编辑器在Unix中的工作方式。在Unix中有许多编辑文件的方法。使用面向屏幕的文本编辑器vi编辑文件是最好的方法之一。使用此编辑器,您可以在上下文中与文件中的其他行一起编辑行。

现在还提供了称为VIM的vi编辑器的改进版本。在这里,VIM代表Vi Improved(改进版的VI)。

vi通常被认为是Unix编辑器中的事实上的标准,因为-

  • 通常可以在所有Unix系统上使用。
  • 它的实现非常相似。
  • 它需要很少的资源。
  • 它比edex等其他编辑器更加用户友好。

您可以使用vi编辑器编辑现有文件或从头开始创建新文件。您也可以使用此编辑器来读取文本文件。

启动vi编辑器

下表列出了使用vi编辑器的基本命令-

序号命令与说明
1vi文件名
如果尚不存在,则创建一个新文件,否则打开一个现有文件。
2vi -R文件名
以只读模式打开现有文件。
3view文件名
以只读模式打开现有文件。

以下是创建新文件testfile的示例(如果当前工作目录中尚不存在该文件)-

$vi testfile

上面的命令将生成以下输出-

|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]    

您会在光标之后的每一行上看到一个波浪号(〜)。代字号代表未使用的行。如果某行不是以波浪号开头并且看起来为空白,则表示存在空格,制表符,换行符或某些其他不可见的字符。

现在,您有一个打开的文件开始处理。在继续进行之前,让我们了解一些重要的概念。

操作模式

使用vi编辑器时,我们通常会遇到以下两种模式-

  • 命令模式-此模式使您可以执行管理任务,例如保存文件,执行命令,移动光标,剪切(拉动)和粘贴行或单词以及查找和替换。在这种模式下,您键入的任何内容都将被解释为命令。
  • 插入模式-使用此模式可以将文本插入文件。在此模式下键入的所有内容都将解释为输入并放置在文件中。

vi始终以命令模式启动。要输入文本,您必须处于插入模式,只需键入i即可。要退出插入模式,请按Esc键,这将使您返回命令模式。

提示-如果不确定所处的模式,请按两次Esc键;这将带您进入命令模式。使用vi编辑器打开文件。首先输入一些字符,然后进入命令模式以了解不同之处。

离开vi

退出vi的命令是:q。在命令模式下,键入冒号和’q’,然后返回。如果您的文件已经过任何修改,编辑器将警告您,并且不允许您退出。要忽略此消息,不保存而退出vi的命令是:q!。。这使您可以退出vi而无需保存任何更改。

保存编辑器内容的命令是:w。您可以将以上命令与quit命令结合使用,或使用:wq并返回。

保存更改并退出vi的最简单方法是使用ZZ(大写)命令。在命令模式下,输入ZZ。该ZZ命令的工作方式相同:WQ命令。

如果要指定/声明文件的任何特定名称,可以在:w之后指定它。例如,如果您想将正在处理的文件另存为另一个名为filename2的文件名,则可以输入:w filename2并返回。

在文件内移动

要在文件内四处移动而又不影响文本,您必须处于命令模式(两次按Esc键)。下表列出了一些可用于一次移动一个字符的命令-

序号命令与说明
1k将光标向上移动一行
2j将光标向下移动一行
3h将光标移动到左侧的一个字符位置
4l将光标移到右边的一个字符位置

在文件内移动时需要考虑以下几点-

  • vi区分大小写。使用命令时需要注意大写。
  • vi中的大多数命令都可以以您希望操作发生的次数为开头。例如,2j将光标向下移动光标两行。

在vi中的文件中还有许多其他移动方式。请记住,您必须处于命令模式(按两次Esc键)。下表列出了一些在文件中移动的命令-

以下是在文件中移动的命令列表。

序号命令与说明
10或|
将光标置于行首
2$
将光标置于行尾
3w
将光标定位到下一个单词
4b
将光标定位到上一个单词
5(
将光标定位到当前句子的开头
6)
将光标定位到下一个句子的开头
7E
移至空白分隔字词的末尾
8{
向后移一段
9}
向前移动段落
10[[
向后移动部分
11]]
向前移动部分
12n |
移至当前行的第n
131G
移到文件的第一行
14G
移到文件的最后一行
15nG
移至文件的n
16:n
移至文件的n
17fc
前进到c
18Fc
移回c
19H
移到屏幕顶部
20nH
从屏幕的顶部移动到第n行
21M
移到屏幕中间
22L
移至屏幕底部
23nL
屏幕的底部移动到第n行
24😡
冒号后跟数字将光标定位在x表示的行号上

控制指令

以下命令可与Control Key一起使用以执行下表中给出的功能-

下面给出的是控制命令列表。

序号命令与说明
1Ctrl + d
向前移动1/2屏幕
2Ctrl + f
全屏前进一屏
3Ctrl + b
向后移动一整屏
4Ctrl + e
将屏幕上移一行
5Ctrl + y
将屏幕向下移动一行
6CTRL + u
将屏幕上移1/2页
7Ctrl + d
将屏幕下移1/2页
8Ctrl + b
将屏幕向上移动一页
9Ctrl + f
将屏幕向下移动一页
10CTRL + I
刷新屏幕

Unix / Linux-vi编辑器教程

在本章中,我们将了解vi编辑器在Unix中的工作方式。在Unix中有许多编辑文件的方法。使用面向屏幕的文本编辑器vi编辑文件是最好的方法之一。使用此编辑器,您可以在上下文中与文件中的其他行一起编辑行。

现在还提供了称为VIM的vi编辑器的改进版本。在这里,VIM代表Vi Improved(改进版的VI)。

vi通常被认为是Unix编辑器中的事实上的标准,因为-

  • 通常可以在所有Unix系统上使用。
  • 它的实现非常相似。
  • 它需要很少的资源。
  • 它比edex等其他编辑器更加用户友好。

您可以使用vi编辑器编辑现有文件或从头开始创建新文件。您也可以使用此编辑器来读取文本文件。

启动vi编辑器

下表列出了使用vi编辑器的基本命令-

序号命令与说明
1vi文件名如果尚不存在,则创建一个新文件,否则打开一个现有文件。
2vi -R文件名以只读模式打开现有文件。
3view文件名以只读模式打开现有文件。

以下是创建新文件testfile的示例(如果当前工作目录中尚不存在该文件)-

$vi testfile

上面的命令将生成以下输出-

|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]    

您会在光标之后的每一行上看到一个波浪号(〜)。代字号代表未使用的行。如果某行不是以波浪号开头并且看起来为空白,则表示存在空格,制表符,换行符或某些其他不可见的字符。

现在,您有一个打开的文件开始处理。在继续进行之前,让我们了解一些重要的概念。

操作模式

使用vi编辑器时,我们通常会遇到以下两种模式-

  • 命令模式-此模式使您可以执行管理任务,例如保存文件,执行命令,移动光标,剪切(拉动)和粘贴行或单词以及查找和替换。在这种模式下,您键入的任何内容都将被解释为命令。
  • 插入模式-使用此模式可以将文本插入文件。在此模式下键入的所有内容都将解释为输入并放置在文件中。

vi始终以命令模式启动。要输入文本,您必须处于插入模式,只需键入i即可。要退出插入模式,请按Esc键,这将使您返回命令模式。

提示-如果不确定所处的模式,请按两次Esc键;这将带您进入命令模式。使用vi编辑器打开文件。首先输入一些字符,然后进入命令模式以了解不同之处。

离开vi

退出vi的命令是:q。在命令模式下,键入冒号和’q’,然后返回。如果您的文件已经过任何修改,编辑器将警告您,并且不允许您退出。要忽略此消息,不保存而退出vi的命令是:q!。。这使您可以退出vi而无需保存任何更改。

保存编辑器内容的命令是:w。您可以将以上命令与quit命令结合使用,或使用:wq并返回。

保存更改并退出vi的最简单方法是使用ZZ(大写)命令。在命令模式下,输入ZZ。该ZZ命令的工作方式相同:WQ命令。

如果要指定/声明文件的任何特定名称,可以在:w之后指定它。例如,如果您想将正在处理的文件另存为另一个名为filename2的文件名,则可以输入:w filename2并返回。

在文件内移动

要在文件内四处移动而又不影响文本,您必须处于命令模式(两次按Esc键)。下表列出了一些可用于一次移动一个字符的命令-

序号命令与说明
1k将光标向上移动一行
2j将光标向下移动一行
3h将光标移动到左侧的一个字符位置
4l将光标移到右边的一个字符位置

在文件内移动时需要考虑以下几点-

  • vi区分大小写。使用命令时需要注意大写。
  • vi中的大多数命令都可以以您希望操作发生的次数为开头。例如,2j将光标向下移动光标两行。

在vi中的文件中还有许多其他移动方式。请记住,您必须处于命令模式(按两次Esc键)。下表列出了一些在文件中移动的命令-

以下是在文件中移动的命令列表。

序号命令与说明
10或|
将光标置于行首
2$
将光标置于行尾
3w
将光标定位到下一个单词
4b
将光标定位到上一个单词
5(
将光标定位到当前句子的开头
6)
将光标定位到下一个句子的开头
7E
移至空白分隔字词的末尾
8{
向后移一段
9}
向前移动段落
10[[
向后移动部分
11]]
向前移动部分
12n |
移至当前行的第n
131G
移到文件的第一行
14G
移到文件的最后一行
15nG
移至文件的n
16:n
移至文件的n
17fc
前进到c
18Fc
移回c
19H
移到屏幕顶部
20nH
从屏幕的顶部移动到第n行
21M
移到屏幕中间
22L
移至屏幕底部
23nL
屏幕的底部移动到第n行
24😡
冒号后跟数字将光标定位在x表示的行号上

控制指令

以下命令可与Control Key一起使用以执行下表中给出的功能-

下面给出的是控制命令列表。

序号命令与说明
1Ctrl + d
向前移动1/2屏幕
2Ctrl + f
全屏前进一屏
3Ctrl + b
向后移动一整屏
4Ctrl + e
将屏幕上移一行
5Ctrl + y
将屏幕向下移动一行
6CTRL + u
将屏幕上移1/2页
7Ctrl + d
将屏幕下移1/2页
8Ctrl + b
将屏幕向上移动一页
9Ctrl + f
将屏幕向下移动一页
10CTRL + I
刷新屏幕

编辑档案

要编辑文件,您需要处于插入模式。有多种方法可以从命令模式进入插入模式-

序号命令与说明
1i
在当前光标位置之前插入文本
2I
在当前行的开头插入文本
3a
在当前光标位置之后插入文本
4A
在当前行的末尾插入文本
5o
在光标位置下方为文本输入创建新行
6O
在光标位置上方为文本输入创建新行

删除字符

这是重要命令列表,可用于删除打开文件中的字符和行-

序号命令与说明
1X
删除光标位置下的字符
2X
删除光标位置之前的字符
3dw
从当前光标位置删除到下一个单词
4d^
从当前光标位置删除到行首
5d$
从当前光标位置删除到行尾
6D
从光标位置删除到当前行的结尾
7dd
删除光标所在的行

如上所述,vi中的大多数命令都可以以您希望操作发生的次数为开头。例如,2x删除光标位置下的两个字符,2dd删除光标所在的两行。

建议先练习命令,然后再继续。

变更指令

您还可以更改vi中的字符,单词或行而不删除它们。这是相关的命令-

序号命令与说明
1cc
删除该行的内容,使您处于插入模式。
2CW
将光标所在的单词从光标更改为单词的小写字母w末端。
3r
替换光标下的字符。输入替换后,vi返回命令模式。
4R
从当前光标下方的字符开始覆盖多个字符。您必须使用Esc停止覆盖。
5s
用您键入的字符替换当前字符。之后,您将处于插入模式。
6S
删除光标所在的行,并将其替换为新文本。输入新文本后,vi保持在插入模式。

复制和粘贴命令

您可以从一个位置复制行或单词,然后可以使用以下命令将它们粘贴到另一位置:

序号命令与说明
1yy
复制当前行。
2yw
从小写字母w光标所在的字符中复制当前单词,直到该单词的末尾。
3p
将复制的文本放在光标之后。
4P
将选中的文本放在光标之前。

高级命令

有一些高级命令可以简化日常编辑,并可以更有效地使用vi-

下面列出了高级命令列表。

序号命令与说明
1J
将当前行与下一行连接。数量为j的命令连接了许多行。
2<<
将当前行向左移动一个宽度。
3>>
将当前行向右移动一个移位宽度。
4
在光标下切换字符的大小写。
5^G
同时按Ctrl和G键以显示当前文件名和状态。
6U
将当前行恢复到光标进入该行之前的状态。
7u
这有助于撤消在文件中所做的最后更改。再次键入“ u”将重新进行更改。
8J
将当前行与下一行连接。计数连接那么多行。
9:f
以%(百分比)显示文件中的当前位置,并显示文件名(文件总数)。
10:f 文件名
将当前文件重命名为filename。
11:w 文件名
重命名名文件并写入文件。
12:e 文件名
用文件名打开另一个文件。
13:cd 目录名
将当前工作目录更改为dirname。
14:e#在两个打开的文件之间切换。
15:n
如果使用vi打开多个文件,请使用:n转到系列中的下一个文件。
16:p
如果使用vi打开多个文件,请使用:p转到系列中的上一个文件。
17:N
如果使用vi打开多个文件,请使用:N转到系列中的上一个文件。
18:r文件
读取文件并将其插入当前行之后。
19:nr文件
读取文件并将其插入第n行之后。

单词和字符搜索

vi编辑器有两种搜索:stringcharacter。对于字符串搜索,/使用命令。当您启动这些命令时,刚键入的命令将显示在屏幕的最后一行,您在其中键入要查找的特定字符串。

这两个命令仅在搜索发生的方向上有所不同-

  • /在文件中顺序(向下)搜索。
  • 在文件中逆向(向上)搜索。

使用nN命令在相同或相反的方向上分别重复前面的搜索命令。若某些字符有特殊含义。这些字符前面必须带有反斜杠(**),才能作为搜索表达式的一部分包含在内。

序号字符和描述
1^
在行的开头进行搜索(在搜索表达式的开头使用)。
2.
匹配一个字符。
3*
匹配零个或多个前一个字符。
4$
行尾(在搜索表达式的末尾使用)。
5[
启动一组匹配或不匹配的表达式。
6<
将其放在以反斜杠转义的表达式中,以查找单词的结尾或开头。
7>
这有助于查看上面讨论的’ < ‘字符。

字符搜索在一行内搜索,以找到在命令后输入的字符。该fF命令搜索仅在当前行的文字。f向前搜索,F向后搜索,光标移至找到的字符的位置。

所述tT命令搜索仅在当前行的字符,但对于t,光标移动到字符之前的位置,且T搜索线向后的字符后的位置。

设定命令

您可以使用以下:set命令更改vi屏幕的外观。进入命令模式后,键入:set,然后键入以下任何命令。

序号命令与说明
1:set ic
搜索时忽略大小写
2:set ai
设置自动缩进
3:set noai
取消自动缩进
4:set nu
在左侧显示行号的行
5:set sw
设置软件制表符的宽度。例如,您可以使用以下命令将移位宽度设置为4 ::set sw = 4
6:set ws
如果设置了wrapscan,但在文件底部找不到该单词,它将尝试在开头搜索
7:set wm
如果此选项的值大于零,则编辑器将自动“自动换行”。例如,要将包装边距设置为两个字符,请输入::set wm = 2
8:set ro
将文件类型更改为“只读”
9:set term
打印终端类型
10:set bf
丢弃输入中的控制字符

运行命令

vi可以从编辑器中运行命令。要运行命令,只需进入命令模式并输入:!。命令。

例如,如果要在尝试使用该文件名保存文件之前检查文件是否存在,可以键入:!ls,您将在屏幕上看到ls的输出。

您可以按任意键(或命令的转义序列)以返回到vi会话。

取代文字

替换命令(:s/)使您可以快速替换文件中的单词或单词组。以下是替换文本的语法-

:s/search/replace/g

g代表全局。此命令的结果是更改了光标行上的所有匹配项。

注意事项

以下几点将帮助您成功使用vi-

  • 您必须处于命令模式才能使用命令。(可随时按两次Esc以确保您处于命令模式。)
  • 您必须小心使用这些命令。这些区分大小写。
  • 您必须处于插入模式才能输入文本。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁