Vi 命令使用方法
Vi 是一款在 Unix 及类 Unix 系统中广泛使用的文本编辑工具,它有三种模式:命令模式、插入模式和底行模式,掌握这些模式的切换及相应命令,能高效地使用 Vi 进行文本编辑。
进入与退出 vi
- 进入 vi:在终端输入
vi filename
(如果文件存在则打开,不存在则创建新文件),或者vi -R filename
以只读模式打开现有文件。 - 退出 vi:在命令模式下,输入
:q
退出(如果文件有修改未保存,需先保存或放弃修改);输入:wq
保存并退出;输入:x
也相当于保存并退出,且更智能,如果文件没有修改则直接退出,有修改则保存后退出。
模式切换
模式 | 切换方式 | 说明 |
---|---|---|
命令模式 | 启动 vi 后默认进入 | 在此模式下,用户可以执行各种光标移动、删除、复制等操作指令,但不能输入文本内容 |
插入模式 | 在命令模式下按 i 键(在光标当前位置插入文本)、a 键(在光标所在字符后插入文本)、o 键(在当前行下方新建一行并进入插入模式)等 |
此模式下可输入文本内容 |
底行模式 | 在命令模式下按 键 | 用于执行文件保存、退出等操作命令 |
命令模式下的常用操作
- 光标移动:
h
或 :光标向左移动一个字符。j
或 :光标向下移动一个字符。k
或 :光标向上移动一个字符。l
或 :光标向右移动一个字符。0
:光标移动到当前行的最前面。- :光标移动到当前行的最后面。
w
:光标向前移动一个单词。b
:光标向后移动一个单词。nG
:跳转到第 n 行(5G
跳转到第 5 行)。gg
:跳转到文件的第一行。G
:跳转到文件的最后一行。
- 删除操作:
x
:删除光标所在的字符。dd
:删除当前行。dG
:删除从当前行到文件末尾的所有行。ndd
:删除从当前行开始的 n 行(3dd
删除当前行及下面两行)。D
:删除从当前光标位置到行尾的内容。
- 复制与粘贴:
yy
:复制当前行。nyy
:复制从当前行开始的 n 行(2yy
复制当前行及下一行)。p
:在光标所在位置的下一行粘贴复制的内容。P
:在光标所在位置的上一行粘贴复制的内容。
- 撤销与重做:
u
:撤销上一个操作。Ctrl + r
:重做被撤销的操作。
插入模式下的操作
在插入模式下,可以直接输入文本内容,就像在使用普通文本编辑器一样,按 Esc
键可退出插入模式,回到命令模式。
底行模式下的常用操作
- 文件保存:
:w
:保存文件,但不退出 vi。:w filename
:将文件保存为指定的名字(:w newfile.txt
)。
- 文件退出与保存退出:
:q
:退出 vi(如果有修改未保存,会提示是否放弃修改)。:wq
:保存文件并退出 vi。:x
:与:wq
类似,保存并退出 vi,且更智能,若文件无修改则直接退出。
查找与替换
- 查找:在命令模式下,输入
/要查找的内容
,然后按Enter
键,vi 会将光标定位到第一个匹配的位置,继续按n
键可以查找下一个匹配项,按N
键可以查找上一个匹配项。 - 替换:在命令模式下,输入
:s/旧内容/新内容/
,会替换当前行的第一个匹配项;输入:s/旧内容/新内容/g
,会替换当前行的所有匹配项;输入:%s/旧内容/新内容/g
,会替换整个文件中的所有匹配项。
行号显示与隐藏
在命令模式下,输入 :set number
可以显示行号,输入 :set nonumber
可以隐藏行号。
相关问题与解答
- 问题 1:如何在 vi 中快速跳转到文件的特定行?
- 解答:在命令模式下,输入
nG
,n 是要跳转到的行号,例如要跳转到第 10 行,就输入10G
,然后按Enter
键,光标就会定位到第 10 行。
- 解答:在命令模式下,输入
- 问题 2:在 vi 中如何取消正在输入的命令?
- 解答:在命令模式下,如果正在输入命令,按
Ctrl + c
可以取消正在输入的命令,
- 解答:在命令模式下,如果正在输入命令,按
以上内容就是解答有关vi命令怎么使用方法的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/13668.html