在本章中,我们将了解vim编辑器在Unix中的工作方式。
启动vi编辑器
下表列出了使用vi编辑器的基本命令-
Sr.No. | Command & 描述 |
---|---|
1 |
vi filename 如果尚不存在,则创建一个新文件,否则打开一个现有文件。 |
2 |
vi -R filename 以只读模式打开现有文件。 |
3 |
view filename 以只读模式打开现有文件。 |
以下是创建新文件 testfile 的示例(如果当前工作目录中尚不存在该文件)-
$vi testfile
上面的命令将生成以下输出-
| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "testfile" [New File]
您会在光标之后的每一行上看到一个波浪号(〜),代字号代表未使用的行。
操作模式
使用vi编辑器时,我们通常会遇到以下两种模式-
命令模式(Command Mode) - 通过此模式,您可以执行管理任务,如保存文件,执行命令,移动光标以及粘贴行或单词,如以及查找和替换。
写入模式(Insert Mode) - 使用此模式可以将文本写入文件中。
vi始终以命令模式启动,要输入文本,您必须处于写入模式,只需键入 i 即可。要退出写入模式,请按 Esc 键,这将使您返回命令模式。
退出 vi
退出vi的命令是 :q 。在命令模式下,键入冒号(:)和'q',然后返回。如果您的文件已被修改,编辑器将警告您,并且不允许您退出。要忽略此消息,不保存而退出vi的命令是 :q!。
保存编辑器内容的命令是:w 。您可以将上面的命令与quit命令结合使用,或者使用 :wq 并返回。
保存更改并退出vi 的最简单方法是使用ZZ命令,在命令模式下,键入 ZZ , ZZ 命令的工作方式与:wq 命令相同。
在文件内移动
要在文件内四处移动而又不影响文本,您必须处于命令模式(按两次Esc键)。下表列出了一些可用于一次移动一个字符的命令-
Sr.No. | Command & 描述 |
---|---|
1 |
k 将光标向上移动一行 |
2 |
j 将光标向下移动一行 |
3 |
h 将光标向左移动一个字符位置 |
4 |
l 将光标移到右边的一个字符位置 |
在文件内移动时需要考虑以下几点-
vi 区分大小写,使用命令时需要注意大写。
vi 中的大多数命令都可以以要执行操作的次数开头。如, 2j 将光标向下移动两行。
在vi中的文件中还有许多其他移动方式。请记住,您必须处于命令模式(按两次Esc )。下表列出了一些在文件中移动的命令-
Sr.No. | Command & 描述 |
---|---|
1 |
0 or |; 将光标置于行首 |
2 |
$ 将光标置于行尾 |
3 |
w 将光标定位到下一个单词 |
4 |
b 将光标定位到上一个单词 |
5 |
( 将光标定位到当前句子的开头 |
6 |
) 将光标定位到下一个句子的开头 |
7 |
E 移至空白分隔字词的末尾 |
8 |
{ 向后移一段 |
9 |
} 向前移动段落 |
10 |
[[ 向后移动部分 |
11 |
]] 向前移动部分 |
12 |
n | 移至当前行的 n 列 |
13 |
1G 移到文件的第一行 |
14 |
G 移到文件的最后一行 |
15 |
nG 移到文件的 n th 行 |
16 |
:n 移到文件的 n th 行 |
17 |
fc 前进到 c |
18 |
Fc 移回到 c |
19 |
H 移到屏幕顶部 |
20 |
nH 从屏幕顶部移至第 n th 行 |
21 |
M 移到屏幕中间 |
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 将屏幕向下移动一行 |
7 |
CTRL+u 将屏幕上移1/2页 |
8 |
CTRL+d 将屏幕下移1/2页 |
9 |
CTRL+b 将屏幕向上移动一页 |
10 |
CTRL+f 将屏幕向下移动一页 |
11 |
CTRL+I 重画屏幕 |
编辑文件
要编辑文件,您需要处于插入模式。有多种方法可以从命令模式进入插入模式-
Sr.No. | Command & 描述 |
---|---|
1 |
i 在当前光标位置之前插入文本 |
2 |
l 在当前行的开头插入文本 |
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 filename 将当前工作目录更改为dirname。 |
14 |
:e # 在两个打开的文件之间切换。 |
15 |
:n 如果使用vi打开多个文件,请使用:n转到系列中的下一个文件。 |
16 |
:p 如果使用vi打开多个文件,请使用:p转到系列中的上一个文件。 |
17 |
:N 如果使用vi打开多个文件,请使用:N转到系列中的上一个文件。 |
18 |
:r filename 读取文件并将其插入当前行之后。 |
19 |
:nr filename 读取文件并将其插入到 n 行之后。 |
单词和字符搜索
vi编辑器有两种搜索: string 和 character 。对于字符串搜索,使用/和?命令。当您启动这些命令时,刚刚键入的命令将显示在屏幕的最后一行,您在其中键入要查找的特定字符串。
这两个命令仅在搜索发生的方向上有所不同-
/命令在文件中向前(向下)搜索。
? 命令在文件中向后(向上)搜索。
n 和 N 命令分别在相同或相反的方向上重复前一个搜索命令。有些字符有特殊含义。这些字符前面必须带有反斜杠(\),以将其包含在搜索表达式中。
Sr.No. | Character &描述 |
---|---|
1 |
^ 在行的开头进行搜索(在搜索表达式的开头使用)。 |
2 |
. 匹配一个字符。 |
3 |
* 匹配零个或多个前一个字符。 |
4 |
$ 行尾(在搜索表达式的末尾使用)。 |
5 |
[ 启动一组匹配或不匹配的表达式。 |
6 |
< 将其放在用反斜杠转义的表达式中,以查找单词的结尾或开头。 |
7 |
> 这有助于查看上面的“ <”字符描述。 |
字符搜索在一行内搜索,以找到在命令后输入的字符。 f 和 F 命令仅在当前行上搜索字符。 f 向前搜索, F 向后搜索,光标移至找到的字符的位置。
设定指令
您可以使用以下:set 命令更改vi屏幕的外观。进入命令模式后,键入:set ,然后键入以下任何命令。
Sr.No. | Command & 描述 |
---|---|
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可以从编辑器中运行命令。要运行命令,只需进入命令模式并键入 :! 命令。
如,如果要在尝试使用该文件名保存文件之前检查文件是否存在,可以键入:!。
替换文字
替换命令(:s/)使您可以快速替换文件中的单词或单词组。以下是替换文本的语法-
:s/search/replace/g
g 代表全局。该命令的输出是更改了光标行上的所有匹配项。
参考链接
https://www.learnfk.com/linux/linux-vi-editor.html
标签:文件,set,字符,vi,无涯,命令,Linux,光标 From: https://blog.51cto.com/u_14033984/8569843