CentOS 7.0 vi命令编辑后如何保存退出?

在 CentOS 7.0 系统中,vi(或其增强版 vim)是默认安装的文本编辑器,它以其强大的功能、高效的编辑能力和极低的资源消耗而闻名,是系统管理员和开发者的必备工具,尽管初学者可能会觉得它的学习曲线有些陡峭,但一旦掌握了其核心操作模式,就能体验到无与伦比的编辑效率,本文将系统地介绍 vi 命令在 CentOS 7.0 环境下的使用方法,从基础入门到高效操作,帮助您快速上手。

CentOS 7.0 vi命令编辑后如何保存退出?

核心概念:理解 vi 的三种模式

vi 的强大之处在于其独特的设计理念,它将编辑操作分为不同的模式,理解并熟练切换这些模式是掌握 vi 的关键。

  1. 命令模式
    这是 vi 启动后的默认模式,在此模式下,您输入的任何字符都被视为一个命令,而不是插入到文本中的内容。h, j, k, l 用于移动光标,x 用于删除字符,dd 用于删除整行。

  2. 插入模式
    在此模式下,您可以像使用普通记事本一样输入文本,从命令模式进入插入模式有多种方式,最常用的是按 i(在光标前插入)或 a(在光标后插入),按下 Esc 键可以从插入模式返回到命令模式。

  3. 末行模式
    也称为 ex 模式,在命令模式下按下冒号 键即可进入此模式,光标会移动到屏幕底部,您可以输入诸如保存(w)、退出(q)、搜索()、替换(s)等更复杂的命令,执行完命令后,按 Enter 键会自动返回命令模式。

模式切换关系图:

+----------------+      按 `i`, `a`, `o` 等      +----------------+
|   命令模式     |  ------------------------->  |   插入模式     |
| (Command Mode) | <-------------------------  | (Insert Mode)  |
+----------------+        按 `Esc` 键           +----------------+
        |
        | 按 `:` 键
        v
+----------------+
|   末行模式     |
| (Last Line Mode)|
+----------------+

基本操作:启动、保存与退出

这是每个 vi 新手必须掌握的第一步。

  • 启动 vi

    CentOS 7.0 vi命令编辑后如何保存退出?

    • vi filename:打开或创建名为 filename 的文件,如果文件不存在,则在保存时会创建。
    • vi:不指定文件名,直接打开一个空白缓冲区,退出时需要指定文件名。
  • 保存与退出(在末行模式下操作):

    • w:保存文件,但不退出。
    • w filename:将当前内容另存为 filename
    • q:退出 vi,如果文件已被修改但未保存,则会提示错误。
    • wqx:保存文件并退出,这是最常用的组合命令。
    • q!:强制退出,不保存对文件所做的任何修改,当您想放弃所有更改时非常有用。

高效编辑:光标移动与文本操作

在命令模式下,vi 提供了丰富的光标移动和文本编辑命令,让双手无需离开键盘主键区即可完成所有操作。

光标移动命令

命令 功能 说明
h 左移一格 等同于方向键左
j 下移一行 等同于方向键下
k 上移一行 等同于方向键上
l 右移一格 等同于方向键右
w 移动到下一个单词的开头 Word
b 移动到上一个单词的开头 Back
0 移动到行首 数字零
^ 移动到本行第一个非空字符
移动到行尾
gg 移动到文件第一行
G 移动到文件最后一行
Ctrl + f 向下翻一页 Forward
Ctrl + b 向上翻一页 Backward

文本编辑命令

命令 功能 说明
i 在光标前插入 Insert
a 在光标后插入 Append
o 在当前行下方新开一行并进入插入模式
x 删除光标所在处的字符
dd 删除光标所在行
dw 删除从光标处到下一个单词开头的内容 Delete Word
yy 复制光标所在行 Yank
p 在光标下方粘贴 Paste
P 在光标上方粘贴
u 撤销上一步操作 Undo
Ctrl + r 重做(撤销的撤销) Redo

高级功能:搜索与替换

vi 的搜索和替换功能非常强大,尤其适合处理大型配置文件或代码。

  • 搜索(在命令模式下操作):

    • /pattern:从光标位置向下搜索字符串 pattern
    • ?pattern:从光标位置向上搜索字符串 pattern
    • n:重复上一次的搜索,方向相同。
    • N:重复上一次的搜索,方向相反。
  • 替换(在末行模式下操作):

    • s/old/new/:将当前行第一个 old 替换为 new
    • s/old/new/g:将当前行所有的 old 替换为 new
    • %s/old/new/g:将整个文件中所有的 old 替换为 new,这是最常用的全局替换命令。
    • %s/old/new/gc:在替换前逐个询问用户是否确认(c 代表 confirm)。

实践演练:一个完整的工作流程

假设我们需要在 CentOS 7.0 中创建一个名为 test.conf 的配置文件。

  1. 打开文件:在终端中输入 vi test.conf 并回车,此时进入 vi 的命令模式,屏幕为空。
  2. 进入插入模式:按下 i 键,屏幕左下角会显示 -- INSERT --,表示已进入插入模式。
  3. # This is a test configuration file.
    server_name = myserver
    port = 8080
  4. 发现错误:假设我们发现端口号应该是 9090 而不是 8080
  5. 返回命令模式:按下 Esc 键。
  6. 移动光标:使用方向键或 j 键将光标移动到 port = 8080 这一行。
  7. 删除并修改
    • 按下 0 将光标移动到行首。
    • 按下 f8(查找字符’8’)将光标移动到’8’上。
    • 按下 2x 删除两个数字’80’。
    • 按下 i 进入插入模式,输入 90
  8. 保存并退出:按下 Esc 确保在命令模式,然后输入 wq 并回车。

至此,您已经成功使用 vi 完成了一次完整的编辑任务,熟练掌握这些基础和进阶命令,将使您在 CentOS 7.0 的命令行环境中如鱼得水。

CentOS 7.0 vi命令编辑后如何保存退出?


相关问答FAQs

问题1:我在 vi 里做了很多修改,但我想放弃所有修改并直接退出,应该怎么办?

解答: 这是一个非常常见的情况,如果您想不保存任何更改而强制退出 vi,请按照以下步骤操作:

  1. 确保您处于命令模式(如果不在,请按 Esc 键)。
  2. 输入冒号 进入末行模式
  3. 在底部的命令行中输入 q! 并按 Enter 键。
    这里的 q 代表退出,而 是强制操作符,它会忽略所有未保存的修改,直接关闭编辑器。

问题2:在编辑一个很长的脚本或配置文件时,我希望能显示行号以便定位,该如何开启?

解答:vi 中开启行号显示非常简单,这同样是在末行模式下完成的。

  1. 按下 Esc 键确保处于命令模式
  2. 输入冒号 进入末行模式
  3. 输入 set number 或其简写形式 set nu,然后按 Enter 键,屏幕左侧就会立即显示行号。
    这个设置是临时的,仅在当前这次 vi 会话中有效,如果您希望每次打开 vi 都默认显示行号,可以在您的主目录下创建一个名为 .vimrc 的文件(如果使用的是 vi 而非 vim,则为 .exrc),并在文件中添加 set number 这一行,这样设置就会永久生效。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-05 21:17
下一篇 2025-10-05 21:19

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信