云计算大数据——vi编辑器基础操作和常用命令
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
vi编辑器的核心优势在于通过模式切换实现文本浏览与编辑的精准控制,初学时可能会因模式逻辑感到陌生,但熟练掌握后能极大提升文本处理效率。本指南将从基础操作入手,梳理核心常用命令,帮助初学者快速入门vi编辑器的使用。
提示:以下是本篇文章正文内容,下面案例可供参考
一、vi 编辑器的工作模式
vi 编辑器是 Unix 和类 Unix 系统中广泛使用的文本编辑器,以其高效性和强大的功能著称。其工作模式主要分为三种:命令模式、插入模式和末行模式。每种模式有不同的用途和操作方法。
1.命令模式(Command Mode)
启动 vi 编辑器时,默认进入命令模式。在此模式下,用户可以执行文本编辑命令,如复制、粘贴、删除、移动光标等,但不能直接输入文本。
2.输入模式(Insert Mode)
在命令模式下按 i、a、o 等键可进入插入模式,此时可以直接输入或编辑文本。
3. 末行模式(Last Line Mode)
在命令模式下按 : 键可进入末行模式,用于执行文件操作、搜索替换、退出等高级命令。
模式切换关系
- 命令模式是 vi 的默认模式,也是切换其他模式的中转站。
- 从命令模式可以进入插入模式或末行模式。
- 从插入模式或末行模式按
Esc键可返回命令模式。

这种多模式设计使得 vi 在编辑文本时更加高效,尤其适合熟练用户快速操作。
二、命令模式中的基本操作
2.1模式切换
vi编辑器有不同的模式,主要包括命令模式、插入模式和末行模式。以下是模式切换的方法:
从命令模式进入插入模式
- 按
i:在当前光标位置前进入插入模式。 - 按
a:在当前光标位置后进入插入模式。 - 按
I:在当前行首进入插入模式。 - 按
A:在当前行尾进入插入模式。 - 按
o:在当前行下方插入新行并进入插入模式。 - 按
O:在当前行上方插入新行并进入插入模式。
从输入模式返回命令模式
- 按
Esc键:退出插入模式,返回命令模式。
从命令模式进入末行模式
- 按
::进入末行模式,可以输入保存、退出等命令(如:wq保存并退出)。
从末行模式返回命令模式
- 执行完末行命令后自动返回命令模式。
- 按
Esc取消末行命令输入并返回命令模式。
常用模式切换场景
- 启动 vi 后默认处于命令模式。
- 在命令模式下按
v进入可视模式(用于文本选择)。 - 在命令模式下按
Ctrl + v进入块选择模式。
2.2移动光标
| 操作类型 | 操作键 | 功能描述 |
|---|---|---|
| 方向移动 | ←, ↓, →, ↑ | 向上、向下、向左、向右移动光标 |
| 翻页 | Page Down 或 Ctrl+F | 向下翻动一整页内容 |
| Page Up 或 Ctrl+B | 向上翻动一整页内容 | |
| 行内快速跳转 | Home键 或 ^ 或 0 | 跳转至当前行的行首 |
| End键 或 $ | 跳转至当前行的行尾 | |
| 行间快速跳转 | gg 或 1G | 跳转到文件的首行 |
| G | 跳转到文件的末尾行 | |
| #G (n为具体行号,如5G) | 跳转到文件的第n行 | |
| 行号显示 | :set nu | 在编辑器中显示行号 |
| :set nonu | 取消编辑器中的行号显示 |
使用说明
- 方向移动:使用箭头键在文本中上下左右移动光标。
- 翻页:Page Down/Ctrl+F 和 Page Up/Ctrl+B 可快速浏览大段文本。
- 行内快速跳转:^ 或 0 相当于 Home键,$ 相当于 End键,方便在单行内快速定位。
- 行间快速跳转:gg 或 1G 跳至文件开头,G 跳至文件结尾,nG 允许指定行号跳转(例如,输入“50G”跳至第50行)。
- 行号显示:在Vim命令模式下输入“:set nu”显示行号,“:set nonu”隐藏行号。
2.3 复制、粘贴和删除
感谢您分享这些文本编辑命令!这些命令看起来像是基于Vim或类似文本编辑器(如Vi)的快捷键,它们用于高效地执行删除、复制和粘贴操作。作为专业智能创作助手,我将基于您提供的信息,逐步解释每个命令的使用方法和场景,确保内容真实可靠。以下是我的详细解释:
- 删除操作
x或Del:删除光标所在位置的单个字符。例如,如果光标在字母“a”上,输入x会删除“a”。dd:删除当前光标所在行的整行内容。例如,在文本编辑中,如果光标在第3行,输入dd会删除这一行。#dd:删除从光标所在行开始的指定行数。这里的#代表一个数字(如2、3等)。例如,输入3dd会删除从当前行开始的三行内容。d^:删除当前光标之前到行首的所有字符(不包括光标位置)。例如,如果光标在行中位置,输入d^会删除从行首到光标前的所有文本。d$:删除当前光标处到行尾的所有字符(包括光标位置)。例如,输入d$会删除从光标到行尾的部分。
- 复制操作
yy:复制当前光标所在行的整行内容到剪贴板(或称为缓冲区)。例如,输入yy后,该行的文本被复制,可以用于后续粘贴。#yy:复制从光标所在行开始的指定行数。#代表数字(如2、5等)。例如,输入4yy会复制从当前行开始的四行内容。
- 粘贴操作
p:将缓冲区中的内容粘贴到光标位置之后。例如,如果您复制了一行文本,输入p会将该行粘贴到当前行的下一行。P:将缓冲区中的内容粘贴到光标位置之前。例如,输入P会将该行粘贴到当前行的上一行。
关键注意事项
- 这些命令通常在Vim编辑器的“正常模式”(Normal Mode)下使用。如果您在插入模式(Insert Mode)或其他模式,需要先按
Esc键切换到正常模式。 - 所有命令区分大小写(如
p和P不同),且操作基于当前光标位置。 - 在实际编辑中,这些快捷键能大幅提升效率,尤其适用于代码或文本的批量处理。
补充
r 修改当前字符
ctrl+r 反撤销(撤销u操作)**
2.4查找文件内容
- 命令 功能描述
- /word 由光标从上而下在文件中查找字符串“word”
- ?word 由光标从下而上在文件中查找字符串“word”
- n 定位下一个匹配的被查找字符串
- N 定位上一个匹配的被查找字符串
例如,输入/in,按 Enter 键后将查找出文件中的in字符串并高亮显示,光标自动移动至第一个查找结果处,按 n 键可以移动到下一个查找结果。

2.5 撤销编辑及保存和退出
命令 功能描述
- u 撤销最近一次操作,重复按可撤销多步操作(相当于多次执行撤销)。
- U 撤销对当前行进行的所有编辑(恢复到行最初状态)。
- ZZ 快速保存当前文件并退出编辑器(无需进入命令模式,等同于:wq的组合操作)。
三、末行模式中的基本操作
Vim编辑器中的末行模式基本操作
在Vim编辑器中,末行模式(也称为命令模式)是通过按:键进入的,用于执行各种编辑命令。它允许用户高效地管理文件、搜索内容、设置选项等。以下我将逐步介绍基本操作,确保结构清晰,并基于真实知识提供可靠指导。操作主要分为文件操作、搜索替换、设置选项等类别。
3.1 文件操作命令
这些命令用于保存、退出或操作文件本身。
- 保存文件:使用
:w命令保存当前文件。例如,如果文件名是example.txt,输入:w example.txt。 - 退出Vim:使用
:q命令退出编辑器。如果文件未保存,Vim会提示错误。 - 保存并退出:组合命令
:wq保存文件并退出。 - 强制退出:如果不想保存更改,使用
:q!强制退出。 - 另存为新文件:使用
:w /root/ newfile.txt将当前内容保存为新文件。
示例:在编辑文件时,输入:w保存,然后:q退出。


3.2 打开新文件或读入其他文件内容
命令 功能描述 备注
- :e /opt/demo.txt 打开/opt目录下demo.txt文件 若文件不存在会创建新文件
- :r /opt/demo.txt 将/opt目录下demo.txt文件内容插入到当前光标位置 需要文件读取权限
:e /opt/demo.txt命令
- 功能描述:此命令用于打开
/opt目录下的demo.txt文件。如果文件已存在,Vim会直接加载其内容;如果文件不存在,Vim会自动创建一个新的空文件,并命名为demo.txt。 - 备注:
- 该命令执行后,Vim会切换到新文件的编辑界面,原文件内容会被保存或丢弃(取决于您是否执行保存操作)。
- 确保您有权限访问
/opt目录,否则可能提示错误(如权限不足)。 - 示例用法:在Vim命令模式下输入
:e /opt/demo.txt,然后按Enter键执行。
:r /opt/demo.txt命令
- 功能描述:此命令用于将
/opt目录下的demo.txt文件内容插入到当前光标所在位置。文件内容会被完整读取并添加到当前编辑的文档中,光标位置不变。 - 备注:
- 文件必须存在且可读,否则Vim会报错(如文件未找到)。
- 需要读取权限:如果用户没有
/opt/demo.txt文件的读取权限,操作会失败。 - 此命令不会切换文件,仅插入内容到当前文档;适合快速导入文本或代码片段。
- 示例用法:在Vim命令模式下输入
:r /opt/demo.txt,然后按Enter键执行。
使用建议
- 逐步操作指南:
- 启动Vim编辑器(例如在终端输入
vim)。 - 进入命令模式(按
Esc键)。 - 输入上述命令(如
:e /opt/demo.txt或:r /opt/demo.txt)。 - 按Enter键执行命令。
- 完成后,继续编辑或使用
:w保存文件。
- 启动Vim编辑器(例如在终端输入
3.3替换文件内容
命令 功能
1:s /old/new 将当前行中查找到的第一个字符“old” 串替换为“new”
2:s /old/new/g 将当前行中查找到的所有字符串“old” 替换为“new”
3:#,# s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
4:% s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”
5:s /old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认
命令功能详解
-
:s /old/new- 功能:在当前行中查找第一个匹配的字符串“old”,并将其替换为“new”。
- 用法示例:如果当前行内容是“old apple old orange”,执行此命令后,会替换第一个“old”,变为“new apple old orange”。
- 注意事项:只替换第一个匹配项,不会影响其他行或同一行的其他匹配。
-
:s /old/new/g- 功能:在当前行中查找所有匹配的字符串“old”,并全部替换为“new”。
- 用法示例:如果当前行内容是“old apple old orange”,执行此命令后,会替换所有“old”,变为“new apple new orange”。
- 注意事项:添加
g标志表示全局替换(global),适用于整行但仅限于当前行。
-
:#,# s/old/new/g- 功能:在指定行号范围内(从行号#到行号#),查找所有匹配的字符串“old”,并全部替换为“new”。
- 用法示例:如果输入
:10,20 s/old/new/g,表示在行号10到20的范围内替换所有“old”为“new”。例如,第15行“old text”变为“new text”。 - 注意事项:行号必须有效(如1到文件末尾),范围格式为
起始行号,结束行号。
-
:% s/old/new/g- 功能:在整个文件范围内查找所有匹配的字符串“old”,并全部替换为“new”。
- 用法示例:执行此命令后,文件中的所有“old”都会被替换为“new”,如第一行“old item”变为“new item”,最后一行“old value”变为“new value”。
- 注意事项:
%符号代表整个文件,使用时要谨慎,避免误操作导致数据丢失。
-
:s /old/new/c- 功能:在当前行中查找第一个匹配的字符串“old”,替换为“new”时,对每个替换动作提示用户确认。
- 用法示例:如果当前行是“old data”,执行此命令后,编辑器会显示提示如“replace with new?”,用户需输入
y(是)或n(否)来确认。 - 注意事项:添加
c标志(confirm)可防止误替换,特别适合重要文件的编辑。
使用建议
- 通用语法:所有命令以
:开头,表示进入命令模式。替换部分/old/new中,“old”和“new”可以是任意字符串,但需注意大小写敏感性(默认区分大小写)。 - 安全提示:在操作前建议备份文件,避免不可逆更改。使用
c标志可增加安全性。 - 编辑器兼容性:这些命令主要适用于vi、vim或类似编辑器。在其他编辑器中(如VS Code的Vim模式),语法可能略有差异,请参考具体文档。
- 实践练习:打开一个测试文件,逐条尝试命令以熟悉行为。例如,先输入
:s /test/example测试当前行替换。
如果您有具体文件或场景需要帮助,或想了解扩展功能(如正则表达式替换),请提供更多细节,我会进一步协助!
总结
此外,文中还介绍了行号显示、文件格式转换等实用技巧。掌握这些内容可帮助读者高效完成系统配置、脚本编写等文本编辑工作。
更多推荐
所有评论(0)