Unix / Linux - vi编辑器教程

在本章中,我们将了解vi Editor如何在Unix中运行.在Unix中编辑文件有很多种方法.使用面向屏幕的文本编辑器 vi 编辑文件是最好的方法之一.使用此编辑器,您可以在文件中的其他行中编辑上下文中的行.

还创建了一个名为 VIM 的vi编辑器的改进版本现在有空.在这里,VIM代表 Vi IM 证明.

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

  • 它通常适用于Unix系统的所有版本.

  • 它的实现非常全面相似.

  • 它只需要很少的资源.

  • 它更多用户友好,比其他编辑,如 ed .

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

启动vi编辑器

下表列出了使用vi editor :

Sr.No .命令&描述
1

vi filename

如果新文件已经存在,则创建一个新文件,否则打开现有文件.

2

vi -R filename

以只读模式打开现有文件.

3

view filename

以只读模式打开现有文件.

以下是创建新文件 testfile 的示例,如果它在当前工作目录中已经不存在 :

$ vi testfile

以上命令将生成以下输出 :

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

你会注意到代字号(〜)在光标后面的每一行.代字号表示未使用的行.如果一行不以波形符号开头并且看起来是空白的,则会出现空格,制表符,换行符或其他一些不可查看的字符.

您现在有一个打开的文件开始工作.在继续之前,让我们先了解一些重要概念.

操作模式

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

  • 命令模式 : 此模式使您可以执行管理任务,例如保存文件,执行命令,移动光标,剪切(yanking)和粘贴行或单词,以及查找和替换.在此模式下,您输入的任何内容都将被解释为命令.

  • 插入模式 : 使用此模式可以将文本插入文件.在此模式下键入的所有内容都被解释为输入并放在文件中.

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两次).下表列出了一些可用于一次移动一个字符的命令 :

Sr.No.Command&描述
1

k

将光标向上移动一行

2

j

将光标向下移动一行

3

h

将光标移动到左侧一个字符位置

4

l

将光标移动到右侧一个字符位置

以下几点需要考虑在文件中移动&减去;

  • vi区分大小写.使用命令时需要注意大小写.

  • vi中的大多数命令都可以以您希望操作发生的次数开头.例如, 2j 将光标向下移动光标位置两行.

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

Sr.不.命令&描述
1

0或|

将光标定位在一行的开头

2

$

将光标定位在一行的末尾

3

w

将光标定位到下一个字

4

b

将光标定位到上一个单词

5

(

将光标定位到当前句子的开头

6

)

将光标定位到下一句的开头

7

E

移至空白分隔词的末尾

8

{

将一个段落移回

9

}

向前移动一个段落

10

[[

将部分移回

11

]]

移动前进部分

12

n |

移至当前行中的 n

13

1G

移至文件的第一行

14

G

移动到fil的最后一行e

15

nG

移至 n th 行file

16

:n

移至 n th 行文件

17

fc

前进至 c

18

Fc

回到 c

19

H

移至屏幕顶部

20

nH

移至 n th 从屏幕顶部开始

21

M

移至中间位置o f屏幕

22

L

移至屏幕底部

23

nL

从屏幕底部移至 n th

24

:x

冒号后跟一个数字会将光标定位在由 x

表示的行号上

控制命令

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

Sr.No.Command&描述
1

CTRL+ d

向前移动1/2屏幕

2

CTRL+ f

向前移动一个全屏

3

CTRL+ u

向后移动1/2屏幕

4

CTRL+ b

向后移动一个全屏

5

CTRL+ e

将屏幕向上移动一行

6

CTRL+ y

将屏幕向下移动一个line

7

CTRL+ u

将屏幕向上移动1/2页

8

CTRL+ d

将屏幕向下移动1/2页

9

CTRL+ b

将屏幕向上移动一页

10

CTRL+ f

将屏幕向下移动一页

11

CTRL+我

重绘屏幕

编辑文件

要编辑文件,您需要在插入中模式.有许多方法可以从命令模式输入插入模式 :

Sr.No.Command&描述
1

i

在当前光标位置之前插入文本

2

I

在当前行的开头插入文本

3

a

在当前光标位置后插入文字

4

A

在当前行的末尾插入文字

5

o

为光标位置下方的文本输入创建一个新行

6

O

创建一个光标位置上方文本输入的新行

删除字符

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

Sr.No.Command&描述
1

x

删除光标位置下的字符

2

X

删除光标位置前的字符

3

dw

从当前光标位置删除到下一个单词

4

d ^

从当前光标位置删除到行首

5

d $

从当前光标位置删除到行尾

6

D

从光标位置删除到当前行的末尾

7

dd

删除光标所在的行

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

建议在我们继续进行之前,我们会执行这些命令.

更改命令

您还可以在不删除的情况下更改vi中的字符,单词或行他们.以下是相关命令 :

Sr.No.Command&描述
1

cc

删除该行的内容,使您处于插入模式.

2

cw

将光标所在的单词从光标更改为单词的小写 w .

3

r

替换光标下的字符.输入替换后,vi返回命令模式.

4

R

覆盖以光标当前字符开头的多个字符.您必须使用 Esc 来停止覆盖.

5

s

用字符替换当前字符你输入.之后,您将处于插入模式.

6

S

删除光标所在的行并将其替换为新行文本.输入新文本后,vi仍处于插入模式.

复制和粘贴命令

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

Sr.No.Command&描述
1

yy

复制当前行.

2

yw

复制小写w光标所在字符的当前单词,直到单词结尾.

3

p

将复制的文本放在光标后面.

4

P

在光标前面放置被拉动的文本.

高级命令

有一些高级命令可以简化日期 - 今天编辑并允许更有效地使用vi :

Sr.No.Command&描述
1

J

将当前行与下一行连接起来. j个命令的计数加入多行.

2

<<

将当前行向左移动一个班次宽度.

3

>>

将当前行向右移动一个班次宽度.

4

切换光标下字符的大小写.

5

^ G

同时按Ctrl和G键显示当前文件名和状态.

6

U

将当前行恢复到光标进入行之前的状态.

7

u

这有助于撤消在文件中完成的最后一次更改.再次输入'u'将重新进行更改.

8

J

将当前行与下一行连接起来.计数连接多行.

9

:f

以%显示文件中的当前位置和文件名,文件总数.

10

:f filename

将当前文件重命名为filename.

11

:w filename

写入文件文件名.

12

:e filename

打开另一个带文件名的文件.

13

:cd dirname

将当前工作目录更改为dirname.

14

:e#

在两个打开的文件之间切换.

15

:n

如果您使用vi打开多个文件,请使用:n 转到该系列中的下一个文件.

16

:p

如果您使用vi打开多个文件,请使用:p 转到该系列中的上一个文件.

17

:N

如果您使用vi打开多个文件,请使用:N 转到该系列中的上一个文件.

18

:r file

读取文件并将其插入当前行之后.

19

:nr file

读取文件并在 n 行之后插入.

单词和字符搜索

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

这两个命令仅在方向上有所不同搜索发生和减去的地方;

  • /命令向前搜索(向下)文件.

  • 命令在文件中向后搜索(向上).

n N 命令分别以相同或相反的方向重复上一个搜索命令.有些人物有特殊的含义.这些字符前面必须加一个反斜杠( \ )作为搜索表达式的一部分.

Sr.No.Character&描述
1

^

在行的开头搜索(在搜索表达式的开头使用).

2

.

匹配单个字符.

3

*

匹配零或更多的前一个字符.

4

$

行尾(在搜索表达式末尾使用).

5

[

启动一组匹配或不匹配的表达式.

6

<

这是用反斜杠转义的表达式找到单词的结尾或开头.

7

>

这有助于查看'< '上面的字符描述.

字符搜索在一行内搜索找到命令后输入的字符. f F 命令仅搜索当前行上的字符. f 向前搜索, F 向后搜索,光标移动到找到的字符的位置.

t T 命令仅搜索当前行上的字符,但对于 t ,光标移动到字符前面的位置, T 向后搜索该行后面的位置.

设置命令

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

Sr.No.Command&描述
1

:set ic

忽略搜索时的情况

2

:set ai

设置autoindent

3

:set noai

Unset autoindent

4

:set nu

在左侧显示行号的行

5

:set sw

设置软件tabstop的宽度.例如,您可以使用此命令将移位宽度设置为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/)使您可以快速替换单词或文件中的单词组.以下是替换text&minus的语法;

:s/search/replace/g

g 代表全球.此命令的结果是光标行上的所有出现都会发生变化.

重要注意事项

以下几点将增加您的成功with vi :

  • 您必须处于命令模式才能使用这些命令. (可以随时按两次Esc以确保您处于命令模式.)

  • 您必须小心这些命令.这些区分大小写.

  • 您必须处于插入模式才能输入文本.