Linux开发工具vim的使用详解
目录
Linux开发工具vim
什么是vim?
Vim 是一款跨平台、开源的轻量级文本编辑器,核心特点是“以键盘快捷键为核心操作逻辑”,不依赖图形化界面(也有图形化版本,但非主流),能在终端/命令行中直接运行,广泛用于代码编写、文本修改等场景,尤其在 Linux/macOS 生态中极为常用。
通俗点来说vim是一款编辑器,平时大家是怎么编写代码的呢?怎么编译代码呢?debug代码呢?vim可以满足多种应用场景,它类似于windows下的集成开发工具vs2022
Linux当中是用vim编辑器来编写代码的,gcc/g++编译器用来编译代码,gdb调试器用来调试代码,这些都是独立的工具,而windows下的vs2019是集成开发工具
vim的操作使用
vim是什么呢?文件编辑器,可以用来编写代码
那么怎么使用vim呢?
vim test.c
当test.c存在时,就可以直接在文件里面写代码;
当test.c不存在时,就会重新新建一个test.c文件,并在里面编写代码
- vim是一个多模式编辑器
这是 vim 最核心、也是新手入门最难的地方——它不像记事本那样“打开就能输入”,而是分为 3 种核心模式,不同模式下键盘按键的功能完全不同,目的是通过“模式切换”减少鼠标操作,提升编辑效率
-
vim的模式
普通模式/正常模式(Normal Mode)
插入模式/编辑模式(Insert Mode)
命令模式/底行模式(Command Mode)
- 普通模式/正常模式(Normal Mode):打开 vim 后的默认模式,不能直接输入文字,核心用于“移动光标”“快速操作”(比如复制一行、删除一段、替换字符)。
- 插入模式(Insert Mode):只有进入这个模式,才能像记事本一样输入文字。从普通模式按“i”(在光标前插入)、“a”(在光标后插入)就能切换进来,按“Esc”键可退回普通模式。不过有⼀点要特别注意,进入vim之后,是处于[普通模式],你要切换到[插入模式]才能够输入文字。
- 命令模式/底行模式(Command Mode):用于执行“全局操作”,比如保存文件、退出 vim、查找文字。从普通模式按“:”(冒号)就能进入,输入“w”表示保存,输入“q”表示退出,输入“wq”表示保存并退出。
- 替换模式(Replace Mode)
- 试图模式(VISUAL BLOCK)
三种模式如何切换?

任何模式回到命令模式,都可以按Esc;
插入模式进入底行模式,首先需要回到普通模式(Esc),然后 shift+:就可以了;
底行模式进入命令模式:按Esc就直接回到命令模式;
底行模式进入插入模式:按Esc进入命令模式,然后 i 进入插入模式
命令模式和底行模式是同一个模式,只是不同的叫法——因指令在屏幕底部输入,所以常叫“底行模式”;本质是通过输入命令来操作,官方更规范的说法是“命令行模式(Command-line Mode)”。
进入方式、功能完全一样:从正常模式按 shift + ;/: 进入,在底部输入指令(如 :w 保存、 :%s/旧内容/新内容/g 批量替换),按回车执行,按 Esc 退回正常模式。
普通/正常模式常见命令
光标移动:
shift+g/G : 光标直接定位到文本末端(最后一行)
gg : 光标直接定位到文本开始(第一行)
数字n + shift+g/G : 光标定位到文本第n行
shitf + 4/$ : 定位到当前行结尾
shift + 6/^ : 定位到当前行开始
光标定位:
h : 左 j : 下 k : 上 l : 右
- 为什么我们的键盘有上下左右键还用hjkl这样的按键呢?因为早期的键盘是没有上下左右键的
- 记忆:h(最左边),j(jump跳楼),k(king高高在上),l(最右边)
w:以单词为单位进行后移
b:以单词为单位进行前移
nb,nw:按照n个单词进行前移或者后移
复制与粘贴:
yy:复制当前行
n + yy:复制n行 , n代表从光标开始想要复制几行
p:粘贴,光标在哪里就粘贴到下一行
n + p:n代表想要粘贴n次
将光标放在所要复制的该行,然后输入yy,此时已经复制了,光标放在想要粘贴到的行数的前一行,然后再输入p就粘贴了;光标在哪里,就粘贴在光标所在行的下一行
撤销操作:
u:撤销上次动作 , 只要没退出vim , 随时可以撤销
ctrl + r : 撤销刚刚的撤销,相当于是反撤销
删除操作:
dd:删除光标所在行,其实功能更像剪切
ndd:删除光标所在行开始的n行内容
修改替换删除操作:
shift + `/~ : 批量化进行大小写转化
r : 替换光标位置的一个字符
n + r : 一次批量化的从光标开始连续替换内容
shift + r/R:进入替换模式(Replace Mode),进行整体文本替换 , 按esc回到普通模式
x : 删除光标所在的字符 , 从左往右删 (普通模式下删除键Backspace不起作用 , 只能用x删除)
n + x:删除光标所在的n个字符 , 从左往右删
shift + x/X:删除光标所在文本的内容,从右往左删
注释操作:
批量化多行注释(本质上是批量化添加)
- 1. 按 Ctrl + v 进入视图模式(VISUAL BLOCK);
- 2. 移动光标( h / j / k / l 键)选中需要注释的多行;
- 3. 输入 大写I(shift + i) 进入到插入模式后
- 4. 输入注释符号 //
- 5. 最后按 Esc 键就完成了批量化注释
批量化取消注释(本质上是批量化删除)
- 1. 按 Ctrl + v 进入视图模式(VISUAL BLOCK);
- 2. 移动光标( h / j / k / l 键)选中 // 或者所要删除的内容;
- 3. 按 d 键就取消注释了
以上的操作都是在普通模式下进行的 , 不要和其他模式搞混了
底行/命令模式常见命令
保存退出操作:
:w :保存当前文件(“write” 缩写) 后面加 ! 表示强制保存
:q :退出当前Vim窗口(“quit” 缩写,需确保文件已保存) 后面加 ! 表示强制退出
:wq :保存文件并退出Vim窗口(常用组合) 后面加 ! 表示强制保存退出
其实前面的 : 也就是从普通模式进入底行模式时需要按的 shift + ;/:
当终端突然退出时,vim会生成临时交换文件(.swp后缀的隐藏文件),默认存放在当前路径下;再次打开vim时会弹出恢复提示。
1. 临时文件的生成
- Vim非正常退出(如终端突然关闭)时,会在当前文件所在目录生成一个隐藏的交换文件,命名规则是: .[原文件名].swp (比如编辑 code.c ,临时文件是 .code.c.swp )。
这个文件的作用是保存你未保存的修改,避免数据丢失。
2. 再次打开Vim的反应
当你再次用Vim打开原文件(比如 vim code.c ),Vim会检测到这个 .swp 文件,弹出类似下图的提示:
同时会给出操作选项(按对应大写字母选择):
- R :恢复(加载.swp里未保存的内容)
- D :删除.swp文件(放弃恢复,用原文件内容)
- E :直接编辑(忽略.swp,用原文件内容)
- Q :退出Vim,不操作
需要注意的是 : 恢复后记得手动删除 .swp 文件,避免下次重复提示。
:/ + 关键词(key) + n : 对关键词key进行匹配搜索 , 按 n键一直向下搜索 (这里的n是小写n , 不代表次数n)
:! + shell的一些基本指令(pwd/ls...) : 不退出vim , 直接对代码进行编译和运行
批量化替换:
:s/old/new :替换当前行中第一个 old(旧内容)为 new(新内容)
:s/old/new/g :替换当前行中所有 old 为 new(“g” 表示“global”全局)
:%s/old/new/g(常用) : 替换整个文件中所有 old 为 new(“%” 表示整个文件)
:%s/old/new/gc :替换整个文件中 old 为 new ,且每次替换前询问确认(“c” 表示“confirm”确认)
分屏操作:
:vs : 分屏操作文件,光标在哪里,我们就编辑那个文件



- code.h :头文件,声明了 Print() 函数(依赖 <stdio.h> 实现输入输出)。
- code.c :实现文件,定义 Print() 函数,功能是输出5次“hahahahaha”。
- main.c :主程序文件,在 main() 函数中调用 Print() ,作为程序入口。

- 使用 gcc code.c main.c 将两个 .c 文件编译为可执行文件 a.out (GCC默认输出名)。
- 运行 ./a.out 后,程序执行 Print() ,输出5行“hahahahaha”,符合代码逻辑。

多文件光标切换
Ctrl + ww : 在多个文件之间进行光标切换最后按
:wq 对每个文件逐个进行保存退出
vim 文件名 +n : 进入文件光标定位在第n行,如果在编译代码出错了,提示出错在第几行,此时就可以直接将光标定位在该行处
!vim : 执行vim上次的命令
shift+zz : 保存退出 , 和!wq一样
vim的配置
为什么要配置Vim?
Vim的默认设置是“最小化通用版本”,很多高频需求没开启,配置的核心目的是解决默认痛点、提升编辑效率,比如:
- 默认没有行号,找代码位置要逐行数,配置后能显示行号;
- 默认Tab键是8个字符宽(代码缩进太宽),配置后可改成4个/2个字符,适配不同语言;
- 默认不支持鼠标操作,配置后鼠标能在Vim里定位、选内容,和普通编辑器一致;
- 默认没有语法高亮、代码折叠,配置后能区分代码关键词、折叠冗余代码,读代码更清晰。
vim的配置全靠一个文件 : ~/.vimrc : 我们配置vim需要在一个.vimrc的文件里配置,而在每个用户的主目录下,都可以自己建立私有的配置文件(如果没有就新建一个),命名为“.vimrc”。
对vim做基本配置 , 本质上就是把配置项写进/home/XXX/.vimrc中
vim的环境设置参数

还需要注意的是 : vim的配置只在当前用户账号下有用
关于环境设置参数还有很多,这里就不一一说明了。
更多推荐




所有评论(0)