linux的vi命令怎么输入命令
linux的vi命令怎么输入命令详细介绍
在 Linux 中使用 vi 编辑器时,输入命令需要根据当前模式进行操作。vi 有三种核心模式:命令模式(默认)、插入模式(输入文本)和末行模式(执行全局命令)。以下是详细的操作方法和常见命令示例:
一、模式切换与基础操作
- 进入插入模式
当你通过vi filename打开文件后,默认处于 命令模式,此时输入的字符会被解析为命令(如移动光标、删除文本等)。若要输入文本,需切换至插入模式:i:在光标当前位置前插入文本。a:在光标当前位置后追加文本。o:在当前行下方新建一行并插入文本。I:在当前行首插入文本。A:在当前行尾插入文本。O:在当前行上方新建一行并插入文本。
例如,输入vi test.txt后按i,即可开始输入内容。
- 返回命令模式
在插入模式下,按Esc键返回命令模式。若不确定当前模式,可多次按Esc确保回到命令模式(部分终端可能有延迟)。 - 进入末行模式
在命令模式下输入:(冒号),进入末行模式(屏幕底部出现:提示符),用于执行保存、退出、查找替换等全局命令。例如::w保存文件。:q退出(若有未保存修改会提示)。:wq保存并退出。:q!强制退出(不保存修改)。
二、命令模式常用命令
1.
光标移动
| 命令 | 功能描述 |
|---|---|
h/← |
左移一个字符 |
j/↓ |
下移一行 |
k/↑ |
上移一行 |
l/→ |
右移一个字符 |
w |
右移至下一个单词开头 |
b |
左移至上一个单词开头 |
0 |
移动到行首 |
$ |
移动到行尾 |
gg |
移动到文件首行 |
G |
移动到文件末行 |
Ctrl + f |
向下翻页 |
Ctrl + b |
向上翻页 |
2.
文本编辑
| 命令 | 功能描述 |
|---|---|
x |
删除光标处字符 |
dd |
删除光标所在行 |
dw |
删除光标处单词 |
d$ |
删除从光标到行尾的内容 |
yy |
复制光标所在行 |
yw |
复制光标处单词 |
p |
粘贴至光标后 |
P |
粘贴至光标前 |
u |
撤销上一步操作 |
Ctrl + r |
重做撤销的操作 |
3.
替换与修改
| 命令 | 功能描述 |
|---|---|
r |
替换光标处单个字符 |
R |
进入替换模式,持续替换直到按 Esc |
cw |
修改光标处单词 |
c$ |
修改从光标到行尾的内容 |
三、末行模式高级命令
1.
保存与退出
| 命令 | 功能描述 |
|---|---|
:w |
保存当前文件 |
:w newfile |
另存为新文件 newfile |
:wq |
保存并退出 |
:x |
保存并退出(等同于 :wq) |
:q! |
强制退出(不保存修改) |
:qa! |
强制退出所有打开的文件 |
2.
查找与替换
| 命令 | 功能描述 |
|---|---|
/pattern |
向下搜索 pattern |
?pattern |
向上搜索 pattern |
n/N |
重复搜索(n 向下,N 向上) |
:s/old/new |
将当前行第一个 old 替换为 new |
:s/old/new/g |
将当前行所有 old 替换为 new |
:%s/old/new/g |
全文替换 old 为 new |
:1,10s/old/new/g |
替换第 1 到 10 行的 old 为 new |
3.
其他实用命令
| 命令 | 功能描述 |
|---|---|
:set nu |
显示行号 |
:set nonu |
隐藏行号 |
:r filename |
读取 filename 内容到当前文件 |
:! command |
执行外部命令(如 :! ls) |
四、注意事项
- 大小写敏感:
vi命令严格区分大小写。例如,P粘贴到光标前,而p粘贴到光标后;G跳转到文件末尾,g则有其他功能。 - 数字前缀:许多命令可添加数字前缀。例如,
5dd删除 5 行,10w右移 10 个单词。 - 误操作处理:若在命令模式下误输入字符,按
Esc取消并重新输入;若在插入模式下,按Esc返回命令模式后再操作。 - 退出前确认:使用
:q退出时,若有未保存修改,vi会提示。此时可选择:wq保存或:q!强制退出。
五、示例操作流程
- 新建并编辑文件:
bashhello.txti
Hello, World
Esc
:wq
- 修改已存在文件:
bashhello.txt/World
cwLinux
:wq
- 替换文本:
bashexample.txt:%s/old/new/g
:wq
91234 example.txt :%s/old/new/g :wq
通过以上操作,你可以在 vi 中高效地输入命令和编辑文本。若需进一步学习,可通过 :help 查看内置帮助文档。