【Linux底层原理】 工具篇(二):Vim 编辑器基础操作与简单配置

一、Vim 是什么?

Vim 是 Linux 环境中常用的文本编辑器。在学习 Linux 开发工具时,我们经常需要通过终端修改代码、配置文件或普通文本文件,因此掌握 Vim 的基本操作十分重要。

Vim 的一个特点是:不同模式下,同一个按键可能有不同的作用。 所以,学习 Vim 时,首先要弄清楚它的模式切换,再学习各个模式下的具体命令。

二、Vim 的基本操作

1. 进入 Vim

在终端中输入以下命令:

bash 复制代码
vim test.c

这条命令表示使用 Vim 打开 test.c 文件。如果文件已经存在,就打开该文件;如果文件不存在,Vim 可以创建一个新的编辑缓冲区,之后保存时再写入文件。

需要特别注意:进入 Vim 后,默认处于正常模式,而不是插入模式。 如果要直接输入文字,需要先切换到插入模式。

2. Vim 的三种基本模式

本节课主要介绍三种模式:

  • 正常模式(Normal Mode):主要用于移动光标、删除、复制、替换和撤销等操作。
  • 插入模式(Insert Mode):主要用于输入文本。
  • 末行模式(Last Line Mode):通过输入命令完成保存、退出、查找等操作。

三种模式之间的切换关系如下:

当前模式 按键 切换结果
正常模式 i 插入模式
正常模式 a 插入模式
正常模式 o 插入模式
插入模式 Esc 正常模式
正常模式 : 末行模式

其中,: 通常通过 Shift + ; 输入。

3. 插入模式的区别

从正常模式进入插入模式,常用以下三个按键。

  • i:从当前光标所在位置开始输入。
  • a:从当前光标所在位置的下一个位置开始输入。
  • o:在当前行下方新建一行,并从新行的行首开始输入。

这三个按键都能进入插入模式,但开始输入的位置不同。

例如,我们已经打开一个文本文件,想在当前光标处修改文字,可以使用 i;如果想从当前字符后面继续输入,可以使用 a;如果想增加一行内容,可以使用 o。

在插入模式下,如果需要执行正常模式中的操作,可以先按 Esc 返回正常模式。

4. 保存与退出

在正常模式下输入 :,进入末行模式,然后执行相应命令。

命令 作用
:w 保存当前文件
:wq 保存文件并退出 Vim
:q! 不保存修改,强制退出 Vim

注意,w 表示写入保存,q 表示退出,! 在这里表示强制执行。

如果修改了文件并且希望保留修改,可以使用 :wq;如果不希望保留本次修改,可以使用 :q!。

【课件配图:第 12 页,Vim 保存与退出命令】

三、Vim 正常模式命令集

正常模式是 Vim 中进行文本操作的重要模式。本节课介绍的操作主要包括光标移动、删除、复制、替换、撤销和跳转指定行。

1. 移动光标

Vim 可以使用键盘上的方向键移动光标,也可以使用以下字母按键。

按键 作用
h 向左移动一格
j 向下移动一格
k 向上移动一格
l 向右移动一格
G 移动到文章末尾
$ 移动到当前行行尾
^ 移动到当前行行首
w 移动到下一个单词的开头
e 移动到下一个单词的末尾
b 移动到上一个单词的开头
gg 移动到文件开头
Shift + g 移动到文件末尾
5l 向右移动五格
15G 移动到第 15 行

其中,h、j、k、l 分别对应左、下、上、右。掌握这些按键后,即使不使用方向键,也可以完成常见的光标移动。

2. 翻页操作

当文件内容比较多时,可以使用快捷键移动屏幕。

按键 作用
Ctrl + b 向后移动一页
Ctrl + f 向前移动一页
Ctrl + u 向后移动半页
Ctrl + d 向前移动半页

这里需要区分光标移动和屏幕翻页:前面介绍的 h、j、k、l 主要用于移动光标,而这些组合键用于移动屏幕显示的内容。

3. 删除文本

Vim 可以删除单个字符,也可以删除多个字符或整行内容。

命令 作用
x 删除光标所在位置的一个字符
6x 删除光标所在位置起的六个字符
X 删除光标前面的一个字符
20X 删除光标前面的 20 个字符
dd 删除光标所在行
#dd 从当前行开始删除指定的行数

这里的 # 表示数字。例如,3dd 表示从当前行开始删除三行。

需要注意,x 和 X 的方向不同:小写 x 删除光标所在位置的字符,大写 X 删除光标前面的字符。

4. 复制与粘贴

正常模式中,复制操作通常使用 y 开头的命令,粘贴则使用 p。

命令 作用
yw 复制从光标所在位置到单词末尾的内容
#yw 复制指定数量的单词
yy 复制当前行
#yy 从当前行开始复制指定数量的行
p 粘贴缓冲区中的内容

例如:

text 复制代码
yy
p

第一条命令复制当前行,第二条命令粘贴复制的内容。

如果要复制六行,可以使用:

text 复制代码
6yy

注意,复制命令和粘贴命令的作用不同:y 负责复制,p 负责将缓冲区中的内容粘贴出来。

5. 替换字符

命令 作用
r 替换光标所在位置的字符
R 进入连续替换状态,直到按下 Esc

两者的区别在于:r 用于替换单个字符;R 则可以连续替换后续内容,直到退出替换状态。

6. 撤销与恢复

命令 作用
u 撤销上一次操作
Ctrl + r 恢复撤销的操作

如果误执行了某个操作,可以先按 u 撤销;如果撤销后又想恢复,可以使用 Ctrl + r。

7. 更改文本

命令 作用
cw 更改从光标所在位置到单词末尾的内容
c3w 更改三个单词

这类命令用于直接更改文本。执行后会进入相应的输入状态,完成修改后按 Esc 返回正常模式。

8. 跳转到指定行

命令 作用
Ctrl + g 显示光标所在行的行号
15G 跳转到第 15 行

当文件较长时,可以通过行号快速定位需要查看或修改的内容。

【课件配图:第 12--13 页,正常模式命令集】

四、Vim 末行模式命令集

末行模式用于执行一些针对文件的操作。使用之前,需要先按 Esc 确保回到正常模式,再输入 : 进入末行模式。

1. 显示行号

输入:

vim 复制代码
:set nu

执行后,文件每一行前面都会显示对应的行号。

2. 跳转到指定行

在末行模式中输入行号即可跳转。

例如:

vim 复制代码
:15

按回车后,光标会跳转到第 15 行。

3. 查找字符

Vim 支持使用 / 和 ? 查找指定内容。

命令 作用
/关键字 从当前位置向后查找
?关键字 从当前位置向前查找
n 按当前查找方向继续查找

例如,输入:

vim 复制代码
/main

再按回车,就会向后查找 main。

如果第一次找到的内容不是想要的位置,可以按 n 继续查找。使用 / 和 ? 的主要区别是查找方向不同。

4. 保存文件

输入:

vim 复制代码
:w

即可保存文件。

5. 离开 Vim

命令 作用
:q 退出 Vim
:q! 不保存修改,强制退出
:wq 保存并退出

如果文件存在未保存的修改,直接退出可能会失败,此时需要根据是否保留修改选择对应命令。

【课件配图:第 13--14 页,末行模式命令集】

五、Vim 操作总结

本节课重点学习了 Vim 的三种基本模式,以及不同模式下的常见操作。

可以将本节内容归纳为以下几个方面:

  1. 模式切换:掌握正常模式、插入模式和末行模式之间的切换方法。
  2. 文本移动:掌握光标移动、翻页和跳转指定行。
  3. 文本修改:掌握插入、删除、复制、粘贴、替换和更改。
  4. 操作恢复:掌握撤销与恢复。
  5. 文件管理:掌握显示行号、查找、保存和退出。

学习 Vim 不需要一次性记住所有命令。更有效的方式是打开一个测试文件,实际执行每一条命令,观察光标位置、文本内容和模式变化。

六、简单 Vim 配置

课件将简单 Vim 配置作为了解内容。本节介绍配置文件的位置和几个常用配置选项。

1. 配置文件的位置

Vim 常见的配置文件包括:

  • /etc/vimrc:系统公共配置文件,对所有用户生效。
  • ~/.vimrc:当前用户的个人配置文件。

个人配置文件位于用户的主目录下。如果文件不存在,可以自行创建。

例如,在当前用户的主目录中打开配置文件:

bash 复制代码
cd ~
vim .vimrc

2. 常用配置选项

可以在 .vimrc 中加入以下配置:

vim 复制代码
syntax on
set nu
set shiftwidth=4

这些配置的作用分别是:

配置 作用
syntax on 开启语法高亮
set nu 显示行号
set shiftwidth=4 设置缩进宽度为 4 个空格

保存配置文件后,再次打开 Vim 时即可使用对应设置。

3. 关于 Vim 插件

课件还介绍了通过安装插件完善 Vim 配置,并以 TagList 插件为例,说明下载压缩包、解压以及放置插件文件的基本思路。

原课件涉及的步骤是:下载 taglist_xx.zip,解压后将 doc 目录中的内容放到 ~/.vim/doc,将 plugin 目录中的内容复制到 ~/.vim/plugin。

本节先了解插件的用途和基本安装思路即可。

【课件配图:第 15 页,简单 Vim 配置与插件】

七、本节学习总结

通过本节学习,我们初步掌握了 Vim 的基本使用方法:

  • 能够通过 vim 文件名 打开文件。
  • 能够在正常模式、插入模式和末行模式之间切换。
  • 能够使用常见命令移动光标、删除和复制文本、替换内容、撤销操作。
  • 能够使用末行模式查找内容、显示行号、保存和退出。
  • 了解 Vim 配置文件的位置,以及语法高亮、行号和缩进宽度等常见配置。

对于 Linux 开发来说,Vim 是一项需要通过实践熟悉的基础工具。建议在自己的 Ubuntu 环境中建立测试文件,逐条练习本节命令,并观察执行结果。

本节的重点不是死记命令,而是弄清楚当前处于什么模式,以及应该使用哪一类命令完成目标。

相关推荐
Lhan.zzZ1 小时前
Qt:动态库模块框架设计
开发语言·c++·qt
wuminyu1 小时前
JVM规范学习总结-JVM规范基本概念
java·linux·c语言·jvm·c++
进击的荆棘2 小时前
Linux系统——进程间通信之system V
linux·共享内存·system v
Demon--hx2 小时前
jsoncpp 核心概念梳理:命名空间、Value 容器与格式化输出
c++
水饺编程13 小时前
第2章:Linux 基础,切换到超级用户
linux·c语言·汇编
便利店102413 小时前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
qetfw14 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
syagain_zsx15 小时前
BRpc 二次封装:Channel 管理、服务管理与回调工厂
c++·学习·程序人生·rpc·谷歌
其实防守也摸鱼15 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全