📅  最后修改于: 2020-12-09 06:00:16             🧑  作者: Mango
vi编辑器阐述为VI SUAL编辑器。它安装在每个Unix系统中。换句话说,它在所有Linux发行版中都可用。它是用户友好的,并且可以在不同发行版和平台上使用。这是一个非常强大的应用程序。 vi编辑器的改进版本是vim 。
vi编辑器有两种模式:
默认情况下,vi编辑器以命令模式启动。要输入文本,您必须处于插入模式,只需键入“ i” ,便会处于插入模式。尽管在输入i之后,屏幕上将不会显示任何内容,但是您将进入插入模式。现在您可以输入任何内容。
要退出插入模式,请按Esc键,您将进入命令模式。
如果不确定自己所处的模式,请按两次Esc键,您将进入命令模式。
vi编辑器工具是一种交互式工具,可以在您编辑文件时在屏幕上显示文件中所做的更改。
在vi编辑器中,随着光标在整个文件中移动,您可以插入,编辑或删除单词。
为每个函数都指定了命令,例如要删除它的x或dd。
vi编辑器区分大小写。例如, p允许您粘贴在当前行之后,而P允许您粘贴在当前行之前。
vi语法:
vi
在终端中,当您输入带有文件名的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,它将通过放弃所做的更改来保存文件。
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 |
---|---|
Delete the specified n number of lines | |
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 |
dθ | 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 |
Move specified number of words forward | |
dw | Delete one word |
yw | Copy one word |
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 |