实践 3:Vim 编辑器的使用

1. 引言

本实践任务旨在培养学生对 Vim 编辑器的全面掌握和实际应用能力。通过系统化的实践,学生将从基础操作逐步过渡到高级功能,建立起对 Vim 的肌肉记忆和操作直觉。这种能力不仅能显著提高文本编辑效率,还能在远程服务器管理、代码编写和配置文件修改等场景中发挥关键作用。特别是在没有图形界面的服务器环境中,熟练掌握 Vim 是系统管理和问题排查的重要技能。

本次实践的重点与难点在于:

  • 模式化编辑 :Vim 编辑器与传统文本编辑工具有着根本性的差异,需要适应 Vim 的多模式操作体系,包括普通模式插入模式可视化模式
  • 命令组合 :Vim 强调命令的组合而非单一按键。例如,d (删除) + w (单词) 组合成 dw (删除一个单词)。

2. 创建、编辑与保存文件

首先,我们从最基础的文件操作开始。请在用户根目录(~)中创建一个名为 learn_vim.txt 的文件,并输入以下内容。

复制代码
Learn Vim.
Vim Example Line 1.
Vim Example Line 2.
Vim Example Line 3.
Vim Example Line 4.
Vim Example Line 5.

操作步骤详解:

  1. 打开/创建文件 :在终端输入 vim learn_vim.txt 命令。Vim 将会启动并打开文件,如果文件不存在,则会创建一个新的空文件。
  2. 进入插入模式 :Vim 启动后默认处于普通模式 (Normal Mode) ,你无法直接输入文本。按下 i 键,注意观察 Vim 左下角会出现 -- INSERT -- 字样,这表示你已成功进入插入模式 (Insert Mode)
  3. 输入文本:现在,你可以像在普通编辑器中一样,直接输入上述所有文本。
  4. 返回普通模式 :输入完成后,按下 Esc 键。这是 Vim 中至关重要的一个按键,它将带你从任何模式返回到普通模式。你会发现左下角的 -- INSERT -- 字样消失了。
  5. 保存并退出 :在普通模式下,输入冒号 :,光标会立即跳转到底部命令行,这标志着进入了命令模式 (Command Mode) 。接着输入 wq (w 代表写入/保存, q 代表退出),然后按下回车键。文件即被保存,Vim 随之关闭。

3. 理解并切换 Vim 模式

Vim 的强大之处在于其独特的模式化编辑思想。掌握模式的切换是精通 Vim 的第一步。

  • 普通模式 (Normal Mode):这是 Vim 的默认和核心模式。所有导航、删除、复制、粘贴等高效的编辑命令都在此模式下执行。可以把它理解为命令的"指挥中心"。
  • 插入模式 (Insert Mode):这是专门用于文本输入的模式。在此模式下,你输入的所有字符都会直接呈现在文件中。
  • 命令模式 (Command Mode) :在普通模式下输入 : 进入,用于执行保存、退出、搜索、替换、设置 Vim 环境等全局性或功能性的操作。

请务必熟练掌握 Esc 键,它是从插入模式返回普通模式的唯一途径,也是你使用频率最高的按键之一。

4. 普通模式下的光标导航

高效编辑的前提是快速、精确地移动光标,而无需依赖鼠标。请在普通模式下,忘掉鼠标,练习以下命令。

首先是基础的字符级移动,请优先使用 hjkl 来分别实现光标的左、下、上、右移动,这是 Vim 用户需要形成肌肉记忆的核心操作。

接着是单词级的快速跳转。使用 w 可以将光标向前移动到下一个单词的词首,而 b 则可以向后移动到上一个单词的词首。

对于行内移动,0 可以将光标直接移动到当前行的绝对行首,而 $ 则会移动到行尾。如果你想移动到行内第一个非空白字符,可以使用 ^

在文件间的长距离跳转也同样轻松。gg 可以让你瞬间回到文件的第一行,而 G 则会跳转到文件的最后一行。如果你想跳转到指定的行号,比如第 3 行,只需输入 3G 即可。

5. 插入模式与文本编辑

进入插入模式不仅仅只有 i 一种方式。Vim 提供了多种命令,让你可以在进入插入模式的同时,将光标定位到最需要的位置。

  • 在光标当前位置之前 插入,使用 i;若想在当前行的行首 插入,使用 I
  • 在光標当前位置之后 追加,使用 a;若想在当前行的行尾 追加,使用 A
  • 在当前行的下方 新建一个空行并进入插入模式,使用 o;若想在上方 新建,则使用 O

文本编辑实践:

learn_vim.txt 文件中,高效完成以下编辑任务。

任务 推荐命令序列 说明
① 在第3行末尾添加文本 (Modified) 3GA(Modified)<Esc> 3G 跳转到第3行,A 直接在行尾进入插入模式并追加,输入文本后按 Esc 返回。
② 在第5行之后插入新行 This is a new line. 5GoThis is a new line.<Esc> 5G 跳转到第5行,o 在其下方新建一行并进入插入模式,输入文本后按 Esc 返回。
③ 将第2行整行替换为 Vim is awesome! 2GccVim is awesome!<Esc> 2G 跳转到第2行,cc 命令会删除整行并立即进入插入模式 ,输入新文本后按 Esc 返回。
④ 删除第4行 4Gdd 4G 跳转到第4行,dd 命令删除整行。

6. 撤销与重做

在编辑过程中,误操作在所难免。Vim 提供了强大而简单的撤销机制,让你敢于大胆尝试各种命令。在普通模式下,按下 u 键 (undo),即可撤销上一次的修改操作。Vim 会将一次完整的修改(例如,从进入插入模式到退出插入模式之间的所有输入)视为"一次操作"。你可以连续按 u 来回溯之前的多个操作状态。

如果你撤销过度了,想要恢复刚才被撤销的操作,可以使用 Ctrl + r (redo)。它会重做被 u 命令撤销掉的操作。uCtrl + r 就像一对孪生兄弟,为你提供了穿梭于编辑历史的能力,是保障你放心编辑的坚实后盾。

7. 可视化模式:所选即所得

除了普通模式和插入模式,Vim 还有一个极其重要的核心模式------可视化模式 (Visual Mode)。它彻底解决了"如何精确选择一段文本"的问题,是 Vim 用键盘模拟鼠标拖拽选中的完美实现。

在普通模式下,你可以通过以下按键进入不同的可视化模式:

  • 按下 v,进入字符可视化模式 。此时,你可以像使用鼠标一样,通过移动光标(h,j,k,l,w,b等)来自由选择文本,小到一个字符,大到数个段落。
  • 按下 V (大写),进入行可视化模式。这个模式下,你的选择单位是整行,非常适合对多行代码或文本进行批量操作。
  • 按下 Ctrl + v,进入块可视化模式。这是一个非常强大的模式,它允许你选择一个矩形的文本块。这在批量为多行添加或删除行首注释、修改表格的某一列时,能发挥出惊人的效率。

一旦进入可视化模式并选中了文本,你就可以对这块选区执行各种操作,例如复制、剪切、替换等,我们将在下一节详细讲解。

8. 复制、剪切与粘贴:可视化模式的威力

掌握了可视化模式后,复制、剪切和粘贴操作将变得无比灵活。这些操作的核心命令依然是 y (yank/复制) 和 d (delete/剪切)。

现在,操作逻辑变得更加清晰:先选择,后操作 。进入任意一种可视化模式(v, V, Ctrl+v),用光标移动命令选中你想要的文本区域,然后:

  • 按下 y,即可将选中的内容复制到 Vim 的剪贴板中。
  • 按下 d,即可将选中的内容剪切(删除并复制)到剪贴板中。

当然,Vim 依然保留了高效的行操作快捷方式:在普通模式下,yy 可以快速复制当前整行,而 dd 可以快速剪切当前整行。{n}yy{n}dd 分别代表复制或剪切从当前行开始的 n 行。

无论是通过何种方式复制或剪切,内容都会被存放在 Vim 的寄存器中。之后,你可以移动光标到任意位置,在普通模式下使用 p (paste) 将内容粘贴到光标之后,或者使用 P (大写) 将内容粘贴到光标之前。

9. 重复的艺术:小数点 . 的魔力

Vim 哲学中有一个极其重要的思想:能重复的,绝不手动操作第二次。实现这一思想的精髓,就是普通模式下的 . 命令。

这个点 . 命令的功能非常简单:重复上一次的修改操作 。"修改操作"涵盖了你在插入模式下的输入、一次删除、一次替换等等。比如,你使用 dw 删除了一个单词。现在,你只需将光标移动到另一个你想删除的单词上,然后轻轻按下 .,那个单词也会被应声删除,无需再次输入 dw。这个技巧在处理具有重复格式的文本时,能极大地提升你的编辑效率。

10. 搜索与替换

当文件内容庞大时,快速定位和修改信息就显得尤为重要。

要在文件中进行搜索 ,在普通模式下输入 /,后面跟上你想要查找的关键词(pattern),然后按回车。Vim 会从光标当前位置向下查找并跳转到第一个匹配项。输入 ? 加关键词则是向上查找。一旦开始搜索,你可以使用 n 跳转到下一个匹配项,使用 N 跳转到上一个匹配项。一个更快捷的方式是,将光标移动到一个单词上,按下 * 即可向下搜索该单词,按下 # 则是向上搜索。

对于替换 操作,Vim 提供了强大的 substitute 命令。在命令模式下,其基本格式为 :[range]s/old/new/[flags]

  • :s/old/new/:将当前行第一个 old 替换为 new
  • :s/old/new/g:将当前行所有 old 替换为 new (g 代表 global)。
  • :%s/old/new/g:将整个文件% 代表所有行)中的所有 old 替换为 new
  • :%s/old/new/gc:在全局替换的基础上,每次替换前都会征求你的确认 (c 代表 confirm),给予你更多的控制权。

11. 窗口管理:一屏掌握全局

在实际工作中,我们常常需要同时查看或编辑多个文件,或者对照一个文件的不同部分。Vim 强大的窗口管理功能(分屏)让你无需离开终端即可实现这一切。

在命令模式下:

  • 输入 :sp [filename] 可以水平分屏 (split)。如果省略文件名,则会打开一个当前文件的新窗口。
  • 输入 :vsp [filename] 可以垂直分屏 (vertical split)。

创建分屏后,你的屏幕会被分割成多个窗口。要在这些窗口之间进行切换,请在普通模式下,先按下组合键 Ctrl + w,然后迅速按下方向键 h, j, k, l 中的一个,即可切换到对应方向的窗口。关闭一个窗口就像关闭一个文件一样,只需在目标窗口中执行 :q:wq 即可。

12. Vim 的个性化配置

要让 Vim 真正成为顺手的利器,你需要根据自己的习惯对其进行配置。Vim 的配置信息存储在一个名为 .vimrc 的文件中。

  • 配置文件位置 :用户专属的配置文件位于主目录下,即 ~/.vimrc。这是一个隐藏文件,如果不存在,你可以手动创建它。在此文件中的配置仅对当前用户生效。
  • 配置文件的作用 :通过在 .vimrc 文件中添加命令,你可以定制 Vim 的方方面面。例如,添加 set number 可以默认显示行号,syntax on 可以开启语法高亮,set tabstop=4 可以设定 Tab 键的宽度。你还可以定义自己的快捷键映射,甚至安装各种强大的插件,将 Vim 打造成一个功能完备的集成开发环境(IDE)。
相关推荐
deng-c-f4 小时前
Linux C/C++ 学习日记(24):UDP协议的介绍:广播、多播的实现
linux·网络·学习·udp
爱吃甜品的糯米团子5 小时前
Linux 学习笔记之 VI 编辑器与文件查找技巧
linux·笔记·学习
筑梦之路6 小时前
深入linux的审计服务auditd —— 筑梦之路
linux·运维·服务器
codigger6 小时前
告别插件堆砌!Neovim 配置“瘦身”实战:用 Mini.nvim 替换主流插件全过程
vim
hi_link6 小时前
centos系统将/home分区的空间分配给/
linux·运维·centos
CSND7406 小时前
linux离线环境局域网远程ssh连接vscode
linux·vscode·ssh
应用市场6 小时前
Linux驱动开发原理详解:从入门到实践
linux·运维·驱动开发
siriuuus6 小时前
Linux MySQL 多实例部署与配置实践
linux·运维·mysql