本文概述
- 什么是vi
- 使用vi
- Linux vi示例
- 命令模式
- 插入方式
- 保存并退出
- 我们命令
- 从命令切换到插入模式
- 移动文件
- 跳线
- 删除
- 重复和撤消
- 剪切, 复制和粘贴的命令
- 剪切, 复制和粘贴块的命令
- 行的开始和结束
- 连接线
- 前进或后退
- 搜索字符串
- 全部替换
- 文字缓冲区
- 缩写
- 我们编辑索引
什么是vi
vi编辑器被细化为可视编辑器。它安装在每个Unix系统中。换句话说, 它在所有Linux发行版中都可用。它是用户友好的, 并且可以在不同发行版和平台上使用。这是一个非常强大的应用程序。 vi编辑器的改进版本是vim。
vi编辑器有两种模式:
- 命令模式:在命令模式下, 对文件进行操作。 vi编辑器以命令模式启动。在这里, 键入的单词将在vi编辑器中充当命令。要传递命令, 你需要处于命令模式。
- 插入模式:在插入模式下, 输入的文本将插入文件中。使用Esc键可将你从插入模式转到命令模式。
默认情况下, vi编辑器以命令模式启动。要输入文本, 你必须处于插入模式, 只需键入” i”, 便会处于插入模式。尽管在输入i之后, 屏幕上将不会显示任何内容, 但是你将进入插入模式。现在你可以输入任何内容。
要退出插入模式, 请按Esc键, 你将进入命令模式。
如果不确定所处的模式, 请按两次Esc键, 你将进入命令模式。
使用vi
vi编辑器工具是一种交互式工具, 可以在你编辑文件时在屏幕上显示文件中所做的更改。
在vi编辑器中, 随着光标在整个文件中移动, 你可以插入, 编辑或删除单词。
为每个函数都指定了命令, 例如要删除它的x或dd。
vi编辑器区分大小写。例如, p允许你粘贴在当前行之后, 而P允许你粘贴在当前行之前。
我们的语法:
vi <fileName>
在终端中, 当你输入带有文件名的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 | 保存并退出 |
:w | Save |
:q | Quit |
:w fname | 另存为fname |
ZZ | 保存并退出 |
:q! | 退出放弃所做的更改 |
:w! | 保存(并写入不可写文件) |
要从vi退出, 请首先确保你处于命令模式。现在, 键入:wq并按Enter。它将保存并退出vi。
输入:wq保存并退出文件。
查看上面的快照, 命令:wq将保存并退出vi编辑器。在命令模式下键入时, 它将自动出现在左下角。
如果要退出而不保存文件, 请使用:q。仅当你未对文件进行任何更改时, 此命令才有效。
查看上面的快照, 此文件已修改, 因此在键入:q时, 它将在左下角显示此消息。
上面的文件可以用命令:!q保存。它放弃对文件所做的更改并保存。
查看上面的快照, 我们输入了:!q, 它将通过放弃所做的更改来保存文件。
我们命令
Linux vi编辑器不同于其他编辑器。你必须使用不同的键才能使用不同的功能。虽然, 使用vi编辑器非常简单有趣。
vi编辑器命令区分大小写。
看一下下表中的vi命令。
从命令切换到插入模式
Command | Action |
---|---|
i | 在当前字符之前开始输入 |
I | 在当前行的开头开始输入 |
a | 在当前字符之后开始输入 |
A | 在当前行的末尾开始输入 |
o | 在当前行之后开始在新行中键入 |
O | 开始在当前行之前在新行上键入 |
移动文件
Commands | Action |
---|---|
j | 向下移动 |
k | 向上移动 |
h | 向左移动 |
l | 向右移动 |
跳线
Commands | Action |
---|---|
G | 会将你定向到文件的最后一行 |
“ | 会将你定向到文件中的最后一个位置 |
删除
Commands | Action |
---|---|
x | 删除当前字符 |
X | 删除光标前的字符 |
r | 替换当前字符 |
xp | 切换两个字符 |
dd | 删除当前行 |
D | 从当前字符删除当前行到行尾 |
dG | 从当前行删除到文件末尾 |
重复和撤消
Commands | Action |
---|---|
u | 撤消上一条命令 |
. | 重复最后一条命令 |
剪切, 复制和粘贴的命令
Commands | Action |
---|---|
dd | 删除一行 |
yy | (yan)复制一条线 |
p | 在当前行之后粘贴 |
P | 在当前行之前粘贴 |
剪切, 复制和粘贴块的命令
Commands | Action |
---|---|
<n>dd | 删除指定的n行 |
<n>yy | 复制指定的n行 |
行的开始和结束
Commands | Action |
---|---|
θ | 在当前行的开头 |
^ | 在当前行的开头 |
$ | 在当前行的末尾 |
dθ | 删除直到一行开始 |
d$ | 删除到行尾 |
连接线
Commands | Action |
---|---|
J | 连接两行 |
yyp | 重复当前行 |
ddp | 交换两行 |
前进或后退
Commands | Action |
---|---|
w | 向前移动一个字 |
b | 向后移动一个词 |
<n>w | 向前移动指定数量的单词 |
dw | 删除一个字 |
yw | 复制一个字 |
<n>dw | 删除指定字数 |
搜索字符串
Commands | Action |
---|---|
/string | 向前搜索给定的字符串 |
?string | 向后搜索给定的字符串 |
/^string | 在行首向前搜索字符串 |
/string$ | 在行尾向前搜索字符串 |
n | 转到下一个出现的搜索字符串 |
/\<he\> | 搜索单词他(而不是那里, 这里等) |
/pl[abc]ce | 搜索地点, 地点和地点 |
全部替换
句法:
:<startLine, endLine> s/<oldString>/<newString>/g
例:
Commands | Action |
---|---|
:1, $ s /可读/已更改/ | 从第一行到最后一行向前替换为向后 |
:3, 6 s /字母/ neww / g | 从第三行到第九行向前替换为后退 |
文字缓冲区
Commands | Action |
---|---|
“add | 删除当前行并将文本放入缓冲区a |
“ap | 从缓冲区a粘贴行 |
缩写
句法:
:ab <abbreviation> <abbreviatedWord>
例:
Commands | Action |
---|---|
:ab au缩写和缩写 | 缩写au为”缩写和不缩写” |
:一只鸟 | An-缩写au |
我们编辑索引
你编辑
- 你编辑
- 1)开关
- 2)移动
- 3)跳
- 4)删除
- 5)撤消并重复
- 6)剪切, 复制, 粘贴
- 7)剪切, 复制, 粘贴块
- 8)开始和结束
- 9)加入
- 10)字
- 11)搜索
- 12)全部替换
- 13)文字缓冲区
- 14)缩写
评论前必须登录!
注册