📜  带命令的Vi编辑器

📅  最后修改于: 2020-12-09 06:00:16             🧑  作者: Mango

Vi命令编辑器

什么是vi

vi编辑器阐述为VI SUAL编辑器。它安装在每个Unix系统中。换句话说,它在所有Linux发行版中都可用。它是用户友好的,并且可以在不同发行版和平台上使用。这是一个非常强大的应用程序。 vi编辑器的改进版本是vim

vi编辑器有两种模式:

  • 命令模式:在命令模式下,对文件进行操作。 vi编辑器以命令模式启动。在此,键入的单词将在vi编辑器中充当命令。要传递命令,您需要处于命令模式。
  • 插入模式:在插入模式下,输入的文本将插入文件中。使用Esc键可将您从插入模式转到命令模式。

默认情况下,vi编辑器以命令模式启动。要输入文本,您必须处于插入模式,只需键入“ i” ,便会处于插入模式。尽管在输入i之后,屏幕上将不会显示任何内容,但是您将进入插入模式。现在您可以输入任何内容。

要退出插入模式,请按Esc键,您将进入命令模式。

如果不确定自己所处的模式,请按两次Esc键,您将进入命令模式。

使用vi

vi编辑器工具是一种交互式工具,可以在您编辑文件时在屏幕上显示文件中所做的更改。

在vi编辑器中,随着光标在整个文件中移动,您可以插入,编辑或删除单词。

为每个函数都指定了命令,例如要删除它的x或dd。

vi编辑器区分大小写。例如, p允许您粘贴在当前行之后,而P允许您粘贴在当前行之前。

vi语法:

vi 

在终端中,当您输入带有文件名的vi命令时,终端将变得清晰,并显示文件的内容。如果没有这样的文件,则将创建一个新文件,并在完成后将使用上述文件名保存该文件。

Linux vi示例

让我们通过一个例子来理解vi:

要启动vi,请打开您的终端,然后键入vi命令,后跟文件名。如果文件在其他目录中,则可以指定文件路径。如果不存在您的文件,它将在给定位置创建一个具有指定名称的新文件。

例:

vi /home/sssit/Downloads/file.txt

查看上面的快照,我们正在创建一个新文件file.txt (因为该文件不存在),并输入了Downloads目录的完整路径。

命令模式

这是您在上面的命令后按Enter键时看到的内容。如果您将开始键入命令,则不会出现任何命令状态。默认情况下,vi在命令模式下打开。

查看上面的快照,它是空白的,因为它是一个新文件。要开始输入,您必须进入插入模式。在终端窗口的末尾,将显示目录名和文件名。

插入方式

要进入插入模式,请按i。虽然,还有其他命令将移至插入模式,我们将在下一页中进行研究。

查看上面的快照,按i后,我们进入了插入模式。现在我们可以写任何东西。要移至下一行,请按Enter。

键入完毕后,按Esc键返回命令模式。

保存并退出

您可以从命令模式下保存并退出vi编辑器。在编写保存或退出命令之前,必须按冒号(:)。冒号允许您向vi提供指导。

退出vi表:

Commands Action
:wq Save and quit
:w Save
:q Quit
:w fname Save as fname
ZZ Save and quit
:q! Quit discarding changes made
:w! Save (and write to non-writable file)

要从vi退出,请首先确保您处于命令模式。现在,键入:wq并按Enter。它将保存并退出vi。

键入:wq保存并退出文件。

查看上面的快照,命令:wq将保存并退出vi编辑器。在命令模式下键入时,它将自动出现在左下角。

如果要退出而不保存文件,请使用:q。仅当您未对文件进行任何更改时,此命令才有效。

查看上面的快照,此文件已修改,因此在键入:q时,它将在左下角显示此消息。

上面的文件可以用命令:!q保存。它放弃对文件所做的更改并保存。

查看上面的快照,我们输入了:!q,它将通过放弃所做的更改来保存文件。

Vi命令

Linux vi编辑器不同于其他编辑器。您必须使用不同的键才能使用不同的功能。虽然,使用vi编辑器非常简单有趣。

vi编辑器命令区分大小写。

查看下表中的vi命令。

从命令切换到插入模式:

Command Action
i Start typing before the current character
I Start typing at the start of current line
a Start typing after the current character
A Start typing at the end of current line
o Start typing on a new line after the current line
O Start typing on a new line before the current line

要移动文件:

Commands Action
j To move down
k To move up
h To move left
l To move right

要跳线:

Commands Action
G Will direct you at the last line of the file
Will direct you to your last position in the file

删除:

Commands Action
x Delete the current character
X Delete the character before the cursor
r Replace the current character
xp Switch two characters
dd Delete the current line
D Delete the current line from current character to the end of the line
dG delete from the current line to the end of the file

要重复和撤消:

Commands Action
u Undo the last command
. Repeat the last command

剪切,复制和粘贴的命令:

Commands Action
dd Delete a line
yy (yank yank) copy a line
p Paste after the current line
P Paste before the current line

剪切,复制和粘贴块的命令:

Commands Action
dd Delete the specified n number of lines
yy Copy the specified n number of lines

行的开始和结束:

Commands Action
θ Bring at the start of the current line
^ Bring at the start of the current line
$ Bring at the end of the current line
Delete till start of a line
d$ Delete till end of a line

连接线:

Commands Action
J Join two lines
yyp Repeat the current line
ddp Swap two lines

向前或向后移动:

Commands Action
w Move one word forward
b Move one word backward
w Move specified number of words forward
dw Delete one word
yw Copy one word
dw Delete specified number of words

搜索字符串:

Commands Action
/string Forward search for given string
?string Backward search for given string
/^string Forward search string at beginning of a line
/string$ Forward search string at end of a line
n Go to next occurrence of searched string
/\ Search for the word he (and not for there, here, etc.)
/pl[abc]ce Search for place, plbce, and plcce

全部替换

句法:

: s///g

例:

Commands Action
:1,$ s/readable/changed/ Replace forward with backward from first line to the last line
:3,6 s/letters/neww/g Replace forward with backward from third line to the ninth line

文字缓冲区:

Commands Action
“add Delete current line and put text in buffer a
“ap Paste the line from buffer a

缩写

句法:

:ab  

例:

Commands Action
:ab au abbrevition and unabbreviation Abbreviate au to be ‘abbrevition and unabbreviation’
:una au Un – abbreviate au

Vi编辑器索引