
◆ 博主名称: 晓此方-CSDN博客 大家好,欢迎来到晓此方的博客。
⭐️Linux系列个人专栏: 【主题曲】Linux
⭐️ Re系列专栏:我们思考 (Rethink) · 我们重建 (Rebuild) · 我们记录 (Record)

文章目录
- 概要&序論
- 一,vim基础认知获取
-
- 1.1vim是什么?为什么我们要学习vim?
- 1.2当前机器的vim的信息查看
- 1.3先见一见vim
- 1.4vi与vim的区别
- [一、 Vim 的多模式架构](#一、 Vim 的多模式架构)
- [二、 命令模式下的快捷操作](#二、 命令模式下的快捷操作)
- 2.1光标快速定位
- 2.2快速跳转
- 2.3编辑与撤销
- 2.4搜索与选中
- [2.5 批量处理与使用技巧](#2.5 批量处理与使用技巧)
-
- [2.5.1可视块模式 (Visual Block) 批量操作](#2.5.1可视块模式 (Visual Block) 批量操作)
- 2.3.2多屏操作与光标切换
- 2.3.3命令行快速定位
- 三、底行模式常用指令
- [四、Vim 的环境配置](#四、Vim 的环境配置)
概要&序論
Hello 大家好,我是此方 ,今天开始我会为大家带来Linux的开发工具的相关内容,Vim 是一款功能强大的多模式编辑器,熟练掌握 Vim 的模式切换与快捷键,能极大地提升编程效率。内容还是力求完整充实,干货满满,希望能够帮到大家。好,我们开始。
一,vim基础认知获取
1.1vim是什么?为什么我们要学习vim?
Linux下带界面的IDE也可以装,但是有点麻烦 ,Linux下的工具都是独立 的,但是IDE底层就是一个个工具的组合。然后我们要介绍的vim,是一个编辑器。我们之前提到过的nano也是编辑器,你可以把那个当作是一个记事本。vim要更牛逼一点。
为什么我们要学习vim?
-
1.vim是最难使用的,(当然vscode的配置更让人恶心。)
-
2.vim是linux自带的。
-
3.你做后端怎么能不会vim呢?
1.2当前机器的vim的信息查看
使用vim --version可以看到版号、功能开关、脚本支持、终端特性 等等内容。

1.3先见一见vim
好,我们命令行**输入vim或者vim + 文件名就进入了vim,**初次进入会看到这样一个欢迎界面。

怎么退出?
- 方法一:shift +:出现输入框。输入q回车退出,或者wq回车退出(w是保存的意思,后面会详细讲)。
- 方法二:大写ZZ按两下。退出。
1.4vi与vim的区别
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本 ,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、mac os、windows。我们接下来,统一按照vim来进行讲解。
一、 Vim 的多模式架构
Vim 的核心在于其"多模式"设计,不同模式下键盘按键的功能截然不同。
1. 命令模式 :默认模式。此模式下可进行光标移动、复制、剪切、粘贴等操作。
2. 插入模式 :按下 a、i 或 o 进入。在此模式下可像普通编辑器一样输入文本。按下 Esc 回到命令模式。
3. 底行模式 :在命令模式下按下 shift + ;(即 :)进入。用于保存文件(w)、退出(q)或执行复杂命令。
4. 替换模式 :按下 shift + r(即 R)进入,可批量替换字符。
5. 视图模式 :按下 ctrl + v 进入,常用于区域选择与列编辑。
注意:插入模式与底行模式之间不能直接切换,必须经过命令模式中转。

二、 命令模式下的快捷操作
命令模式是 Vim 的"指挥中心",掌握以下快捷键可实现脱离鼠标的快速编辑:
使用vim的时候一个细节原则:忽略你的小键盘 ,有的人和我一样输入数字有一个癖好用小键盘,但是vim默认不支持小键盘。

2.1光标快速定位
基础移动 :h (左)、j (下)、k (上)、l (右)。 (方向键也可以,但是推荐你这一套,在视图模式下上下左右选中不支持方向键 )
为什么是这一套移动设置?这不是太麻烦了? ,别着急,万物自有其原因,如下,这是古人使用的键盘出土文物。当时还没有方向键。

2.2快速跳转
gg:快速回到文件开头。G(shift + g):快速定位到文件结尾。$(shift + 4):定位到当前行行尾。^(shift + 6):定位到当前行行首。w/b:以单词为单位向后或向前移动。(单词的界定比较模糊,可以是一个单词,也可以是连续的特殊字符串)
以上操作都可以在前面加上n来倍数操作哦。
2.3编辑与撤销
复制粘贴 :yy 复制当前行;p 在光标所在位置后方粘贴;P 在前方粘贴。
剪切删除 :dd 剪切/删除当前行;x 删除光标所在字符;shift + x 删除光标左侧字符。(即是删除又是剪切 )
替换与转换 :r 替换单个字符;nr 批量替换;shift + ~ 进行大小写切换。
撤销重做 :u 撤销历史操作;ctrl + r 撤销"撤销"操作(反撤销)。需要注意,一旦退出文件,撤销历史将丢失。
以上操作都可以在前面加上n来倍数操作哦。
2.4搜索与选中
在单词上按下 shift + 3 (#) 可快速选中并搜索该单词,按 n 进行逆向查找。
2.5 批量处理与使用技巧
2.5.1可视块模式 (Visual Block) 批量操作
在命令模式下,通过 Ctrl + v 进入可视块模式,可以实现对多行的快速批量编辑:
- 批量添加注释:
- 按下
Ctrl + v进入可视块模式。 - 使用
j/k选中需要注释的行。(在ctrl +v进入视图模式后,之前的任何相关于光标的操作如:shift+g,n+hjkl等等都可以用来选定我们想要的。就是光标移动到那里,哪里就被我们选定了) - 按下
Shift + i(大写I) 进入插入模式。 - 输入注释符号(如
//或#)。 - 按下
Esc键,Vim 会自动在选中的所有行首添加该符号。
- 按下
- 批量删除内容:
- 按下
Ctrl + v选中需要删除的区域。 - 按下
d或x键即可将选中块内容一次性删除。
- 按下
2.3.2多屏操作与光标切换
使用底行模式指令 :vs [filename] 可以实现水平分屏。在多屏幕之间切换光标的方法如下:
- 快捷键切换: 按住
Ctrl不放,连续快速按下两次w(Ctrl + ww),光标会在不同窗口间循环跳转。 - 方向切换: 使用
Ctrl + w配合方向键h/j/k/l可以精确跳转到左/下/上/右侧的窗口。
2.3.3命令行快速定位
- 启动即跳转: 在终端执行
vim filename +n(n为行号)。- 应用场景: 配合编译器报错信息,直接进入文件并精准定位到出错行,极大提高查找编译错误的效率。
- 快速重复命令: 在 Linux 命令行输入
!首字符(如!v)。- 直接执行最近一次以该字符开头的命令。其作用类似于快捷键
Ctrl + r在历史记录中搜索并执行。
- 直接执行最近一次以该字符开头的命令。其作用类似于快捷键
三、底行模式常用指令
在使用底行模式之前,请记住先按 ESC 键确定您已经处于命令模式 ,再按 : 冒号键即可进入底行模式。底行模式主要用于文件的全局管理与环境设置。
3.1环境设置
:set nu:列出行号。输入后,会在文件中的每一行前面列出行号。:set nonu:取消列出行号。
3.2文件跳转
:#:跳转到文件中的某一行。#代表一个数字,在冒号后输入数字再按回车键即可。例如输入15再回车,就会跳到文章的第 15 行。
3.3查找字符
/关键字:向后搜索。输入/键及关键字后,按n会继续往后寻找下一个匹配项。?关键字:向前搜索。输入?键及关键字后,按n会继续往前寻找下一个匹配项。- 问题:
/和?查找有什么区别?操作实验一下。
3.4替换与执行
:%s/src/dst/g:全局替换字符串。将文件中所有的src替换为dst。:!command:在不退出 Vim 的情况下执行外部系统命令(如:!ls)。:vs new_src:分屏打开新文件。
3.5保存与离开
:w:保存当前文件。:q:退出 Vim。如果文件已被修改且未保存,可能无法直接离开。:q!:强制退出,不保存任何修改。:wq:保存并退出。这是最常用的离开方式。
四、Vim 的环境配置
Vim 是一款位于 /usr/bin/vim 目录下的应用程序。在程序启动时,它会自动在特定目录中寻找配置文件,并根据其中的指令来调整编辑器的各项配置。
4.1配置文件原理
Vim 的配置文件主要分为两种类型,建议每个用户配置属于自己的 .vimrc 文件,这样不会对其他用户造成影响:
- 用户配置 :位于用户家目录(home)下,文件名为
.vimrc。修改此文件仅对当前用户生效。 - 全局配置 :通常位于
/etc/vimrc。修改该文件会导致所有用户的 Vim 配置都被更改。 - 加载逻辑 :Vim 启动时会先在 home 目录中找
.vimrc。如果找到了,则按文件内容修改配置项;如果没有找到,则使用默认配置。
4.2基本手动配置
在 .vimrc 文件中,每一行代表一项配置。注意:.vimrc 的注释需要以双引号 (") 开头。
| 配置指令 | 功能说明 |
|---|---|
syntax on |
设置语法高亮 |
set nu |
设置行号显示 |
set tabstop=4 |
设置 tab 缩进长度为 4 个空格 |
set autoindent |
设置自动缩进,适用所有类型文件 |
set cindent |
针对 C 语言的自动缩进,比 autoindent 更精准 |
| `set list lcs=tab: | \ \ ` |
set cursorline |
突出显示当前行 |
4.3自动化配置
对于 C/C++ 开发者,可以使用成熟的开源项目进行一键配置,例如 VimForCpp。
-
安装命令:
bashcurl -sLf [https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh](https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh) -o ./install.sh && bash ./install.sh -
强调 :绝对不要在 root 用户下直接执行此安装脚本。
-
安装效果 :安装后,家目录下的
.vimrc会指向该项目的初始化文件,并自动集成代码补全等高级功能。

好的本期内容就到这里,如果对你有帮助,还不要忘记点赞三联支持。我是此方,我们下期再见。bye!