ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【Linux基础开发工具(二)】Vim编辑器从入门到实战:模式、命令、配置与常见问题全解析

2026/10/1 6:35:22 拓冰建站 浏览量
【Linux基础开发工具(二)】Vim编辑器从入门到实战:模式、命令、配置与常见问题全解析 目录一、前言二、Vim编辑器1.vim和vi的关系2.vim基本概念1.三种常用模式2.模式间的转换3.命令模式的命令集1.光标移动类2.编辑操作类4.底行模式的命令集5.vim操作总结6.补充1.视图模式下批量化注释、去注释2.实用功能!commandvs filename%s/target/src/gctrlww命令模式下vim filename 行号命令行首字母7.常见问题1.vim异常退出问题2.怎么把普通用户添加到白名单可以执行sudo命令8.vim配置问题插件使用三、小结一、前言本篇向大家介绍Linux基础开发工具最重要的一环——vim编辑器。vim是 Linux 下最经典、最强大的文本编辑器也是很多程序员和运维人员的首选。它源自vi功能更丰富几乎任何 Linux 系统都能见到它。附二、Vim编辑器1.vim和vi的关系vi/vim的区别简单点来说它们都是多模式编辑器不同的是vim是vi的升级版本它不仅兼容vi的所有指令⽽且还有⼀些新的特性在⾥⾯。例如语法加亮可视化操作不仅可以在终端运⾏也可以运⾏于xwindow、 mac os、 windows。所以我们一步到位直接学习更强大的vim2.vim基本概念1.三种常用模式我们讲解vim的三种模式(其实有好多模式⽬前掌握这3种即可),分别是命令模式command mode、插⼊模式Insert mode和底⾏模式last line mode各模式的功能区分如下正常/普通/命令模式(Normal mode)控制屏幕光标的移动字符、字或⾏的删除移动复制某区段及进⼊Insert mode下或者到 last line mode插⼊模式(Insert mode)只有在Insert mode下才可以做⽂字输⼊按「ESC」键可回到命令⾏模式。该模式是我们后⾯⽤ 的最频繁的编辑模式。末⾏模式(last line mode)⽂件保存或退出也可以进⾏⽂件替换找字符串列出⾏号等操作。在命令模式下*shift:* 即可进⼊该模式。要查看你的所有模式打开 vim底⾏模式直接输⼊ :help vim-modes2.模式间的转换如上图所示进⼊vim,在系统提⽰符号输⼊vim及⽂件名称后就进⼊vim全屏幕编辑画⾯:$ vim test.c不过有⼀点要特别注意就是你进⼊vim之后是处于[正常模式]你要切换到[插⼊模式]才能够输⼊⽂字。[正常模式]切换⾄[插⼊模式]按「i」切换进⼊插⼊模式「insert mode」按“i”进⼊插⼊模式后是从光标当前位置开始输⼊⽂件按「a」进⼊插⼊模式后是从⽬前光标所在位置的下⼀个位置开始输⼊⽂字按「o」进⼊插⼊模式后是插⼊新的⼀⾏从⾏⾸开始输⼊⽂字。[插⼊模式]切换⾄[正常模式]⽬前处于[插⼊模式]就只能⼀直输⼊⽂字如果发现输错了字,想⽤光标键往回移动将该字删 除可以先按⼀下「ESC」键转到[正常模式]再删除⽂字。当然也可以直接删除。[正常模式]切换⾄[末⾏模式]「shift ;」, 其实就是输⼊「:」退出vim及保存⽂件,在[正常模式]下按⼀下「:」冒号键进⼊「Last line mode」,例如:: w 保存当前⽂件: wq (输⼊「wq」,存盘并退出vim): q! (输⼊q!,不存盘强制退出vim)3.命令模式的命令集1.光标移动类上下按gg进⼊到⽂本开始首行按shiftg进⼊⽂本末端尾行按#shiftg进⼊第 # 行左右按「$」移动到光标所在⾏的“⾏尾”按「^」移动到光标所在⾏的“⾏⾸”位移动vim可以直接⽤键盘上的光标来上下左右移动但正规的vim是⽤⼩写英⽂字⺟「h」、「j」、 「k」、「l」分别控制光标左、下、上、右移⼀格#h/j/k/l 移动#位光标以单词为单位移动按[#w]光标回到下个单词的开头按[#b]光标回到上个单词的开头2.编辑操作类删除⽂字在插入模式下也可以直接delete删除「x」每按⼀次删除光标所在位置的⼀个字符「#x」例如「6x」表⽰删除光标所在位置的“后⾯包含⾃⼰在内”6个字符「dd」删除光标所在⾏「#dd」从光标所在⾏开始删除#⾏复制、粘贴「yy」复制光标所在⾏到缓冲区。「#yy」例如「6yy」表⽰拷⻉从光标所在的该⾏“往下数”6⾏⽂字。「p」将缓冲区内的字符贴到光标所在位置。注意所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。撤销上⼀次操作「u」如果您误执⾏⼀个命令可以⻢上按下「u」回到上⼀个操作。按多次“u”可以执⾏多次回复。「ctrl r」: 撤销的恢复替换「r」替换光标所在处的字符。「R」替换光标所到之处的字符直到按下「ESC」键为⽌。博主可能没有给大家写的那么全但是这些指令足够我们日常使用了不必担心4.底行模式的命令集在使⽤末⾏模式之前请记住先按「ESC」键确定您已经处于正常模式再按「」冒号即可进⼊末⾏模式。基础操作列出⾏号「set nu」: 输⼊「set nu」后会在⽂件中的每⼀⾏前⾯列出⾏号。「set nonu」取消显示行号。跳到⽂件中的某⼀⾏「#」:「#」号表⽰⼀个数字在冒号后输⼊⼀个数字再按回⻋键就会跳到该⾏了如输⼊数字 15再回⻋就会跳到⽂章的第15⾏。查找字符「/关键字」: 先按「/」键再输⼊您想寻找的字符如果第⼀次找的关键字不是您想要的可以 ⼀直按「n」会往后寻找到您要的关键字为⽌。「?关键字」先按「?」键再输⼊您想寻找的字符如果第⼀次找的关键字不是您想要的可以⼀直按「n」会往前寻找到您要的关键字为⽌。保存⽂件「w」: 在冒号输⼊字⺟「w」就可以将⽂件保存起来离开vim「q」按「q」就是退出如果⽆法离开vim可以在「q」后跟⼀个「!」强制离开vim。「wq」⼀般建议离开时搭配「w」⼀起使⽤这样在退出的时候还可以保存⽂件。问题∕ 和 查找有和区别操作实验⼀下。操作/向下搜索?向上搜索搜索方向向文件末尾向文件开头按n继续向下找继续向上找按N反向向上找反向向下找典型场景从开头找后面的内容从末尾找前面的内容5.vim操作总结6.补充1.视图模式下批量化注释、去注释批量加注释//把光标移到你要注释的第一行的开头。按Ctrl v进入可视块模式。按j或方向键下选中你要注释的所有行。按大写IShift i进入插入模式。输入注释符比如//。按Esc稍等一秒钟选中的所有行首都会自动加上//。批量去注释光标移到第一行注释符//的位置。按Ctrl v进入可视块模式。按j选中所有带//的行。按d或x直接删除选中的注释符。2.实用功能!command作用在 Vim 中直接执行外部的 Shell 命令。用法在底行模式下输入:!ls、:!pwd、:!gcc %等。原理Vim 会挂起自己把命令交给系统 Shell 执行。执行完后会提示Press ENTER or type command to continue按回车就会回到 Vim。vs filename水平分屏对比如果垂直分屏是:vs那水平分屏就是:sp filename全称split。使用场景写代码时左边看头文件、右边写实现或者对照两个文件。%s/target/src/g功能把文件内容里的所有的target替换成srcctrlww命令模式下作用在 Vim 的多个分屏窗口之间循环切换光标焦点。归属模式这是在普通模式下按的先按Ctrlw松开后再按w绝对不能在底行模式下输入。用法你先用:vs或:sp分屏。按Ctrl w再按w下文统称Ctrlww光标会在不同窗口之间跳来跳去。进阶除了w循环切换你还可以按Ctrl w后接方向键Ctrl wh切换到左边窗口Ctrl wj切换到下边窗口Ctrl wk切换到上边窗口Ctrl wl切换到右边窗口vim filename 行号功能启动vim时光标定位到指定行常用于编译file出现报错时进行快速定位修改。命令行首字母功能匹配到最近一次以指定字母开头的命令简化高频命令提高效率。7.常见问题1.vim异常退出问题场景你编写了几百行代码由于网络问题Xshell和服务器断开连接写的那么多代码没有来得及保存自动退出了该怎么恢复代码我们每次启动vim时系统会自动生成一个隐藏文件实时保存我们编写的代码正常保存退出时该文件自动删除若异常退出可通过该文件恢复代码code.c.swp。2.怎么把普通用户添加到白名单可以执行sudo命令步骤在root账号下vim /etc/sudoers 下翻添加用户wq!强制保存退出。8.vim配置问题把vim的配置项写入到当前用户的/home/xxx/.vimrc里。配置⽂件的位置在⽬录 /etc/ 下⾯有个名为vimrc的⽂件这是系统中公共的vim配置⽂件对所有⽤⼾都有效。⽽在每个⽤⼾的主⽬录下都可以⾃⼰建⽴私有的配置⽂件命名为“.vimrc”。例如/root⽬录下通常已经存在⼀个.vimrc⽂件,如果不存在则创建之。切换⽤⼾成为⾃⼰执⾏su进⼊⾃⼰的主⼯作⽬录,执⾏cd ~打开⾃⼰⽬录下的.vimrc⽂件执⾏vim .vimrc插件使用在gitee上搜vimforcpp直接在命令行粘贴配置行自动下载安装插件给大家贴在下面了https://gitee.com/HGtz2222/VimForCpp三、小结本文系统介绍了Linux下最经典的文本编辑器Vim。从vi与vim的关系讲起明确了vim是vi的升级版兼容所有指令且支持语法高亮和可视化操作。重点拆解了Vim的三种核心模式命令模式、插入模式、底行模式并给出了模式间的切换方法和常用命令集包括光标移动、删除复制、撤销替换等编辑操作以及底行模式下的行号显示、查找替换、保存退出等。针对/和?的查找方向区别做了实验对比并补充了批量注释去注释、分屏、执行外部命令等实用技巧。最后针对异常退出恢复、普通用户sudo白名单、vim配置文件及插件安装等常见问题给出了解决方案。掌握这些内容足以应对日常开发中的绝大多数文本编辑场景。建议多动手练习把命令变成肌肉记忆。如果觉得有帮助欢迎点赞收藏一起在Linux的世界里进阶