news 2026/10/1 6:35:05

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

作者头像

张小明

前端开发工程师

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

目录

一、前言

二、Vim编辑器

1.vim和vi的关系

2.vim基本概念

1.三种常用模式

2.模式间的转换

3.命令模式的命令集

1.光标移动类

2.编辑操作类

4.底行模式的命令集

5.vim操作总结

6.补充:

1.视图模式下:批量化注释、去注释

2.实用功能

:!command

:vs filename

:%s/target/src/g

ctrl+ww(命令模式下)

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。所以我们一步到位,直接学习更强大的vim!

2.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-modes

2.模式间的转换

如上图所示:

进⼊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]:进⼊到⽂本开始(首行)
按[shift+g]:进⼊⽂本末端(尾行)
按[#+shift+g]:进⼊第 # 行
左右:
按「$」:移动到光标所在⾏的“⾏尾”
按「^」:移动到光标所在⾏的“⾏⾸”
位移动:
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.视图模式下:批量化注释、去注释

批量加注释(//)

  1. 把光标移到你要注释的第一行的开头。

  2. 按Ctrl + v进入可视块模式。

  3. 按j(或方向键下)选中你要注释的所有行。

  4. 按大写I(Shift + i),进入插入模式。

  5. 输入注释符,比如//。

  6. 按Esc,稍等一秒钟,选中的所有行首都会自动加上//。

批量去注释

  1. 光标移到第一行注释符//的位置。

  2. 按Ctrl + v进入可视块模式。

  3. 按j选中所有带//的行。

  4. 按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替换成src

ctrl+ww(命令模式下)

作用:在 Vim 的多个分屏窗口之间循环切换光标焦点。

  • 归属模式:这是在普通模式下按的(先按Ctrl+w,松开后再按w),绝对不能在底行模式下输入。

  • 用法:

    1. 你先用:vs或:sp分屏。

    2. 按Ctrl + w,再按w(下文统称Ctrl+ww),光标会在不同窗口之间跳来跳去。

  • 进阶:除了w循环切换,你还可以按Ctrl + w后接方向键:

    • Ctrl + w+h:切换到左边窗口

    • Ctrl + w+j:切换到下边窗口

    • Ctrl + w+k:切换到上边窗口

    • Ctrl + w+l:切换到右边窗口

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的世界里进阶!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 6:34:59

特征值与特征向量的含义

特征值与特征向量的含义 Hessian 系列:定义与性质 → 矩阵定性 → 本篇(特征值与特征向量)→ 图像处理中的 Hessian 矩阵 1. 基本关系 Hessian 矩阵 H 是对称矩阵,可以做正交对角化: H QΛQᵀ Σ λᵢ vᵢvᵢᵀ其…

作者头像 李华
网站建设 2026/10/1 6:34:09

大模型应用开发实战:从提示词工程到 RAG 与 Agent 的全链路落地

大模型应用开发实战:从提示词工程到 RAG 与 Agent 的全链路落地 一、写在前面:应用开发与模型训练是两条完全不同的赛道 很多初学者把"大模型开发"等同于"训练模型",结果一上来就去啃论文、买显卡、跑预训练,…

作者头像 李华
网站建设 2026/10/1 6:33:18

MPS主生产计划与APS高级计划排程:从定义到应用,区别究竟在哪?

1. 引言在制造业数字化转型的讨论中,MPS主生产计划和APS高级计划排程经常被同时提起。有人把它们当作同一件事的不同叫法,也有人认为APS只是MPS的升级版。但事实上,两者在定位、逻辑、输入输出和解决的具体问题上都存在明显差异。理解这些差异…

作者头像 李华
网站建设 2026/10/1 6:32:45

文献综述越搜越乱?外事事务专业可以试试这套“工具组合拳”

外事事务专业的同学,大概都懂一种痛苦:题目一落到“领事保护”“海外利益保护”“地方外事协同”“国际危机沟通”这类方向,文献就立刻变得很分散。它可能在公共管理、国际关系、法学、应急管理,甚至旅游安全研究里;既…

作者头像 李华
网站建设 2026/10/1 6:31:59

Redis的DEL命令把我整不会了,删了key咋还占着内存?

“明明用DEL删了key,监控显示内存一点没降?” 去年重构一个日活百万级的feed流系统时,我对着Redis内存监控图百思不得其解——批量清理了20GB的陈旧数据,可用内存居然纹丝不动。直到用MEMORY USAGE命令深挖,才发现踩中…

作者头像 李华
网站建设 2026/10/1 6:31:17

Linux下安装Brother打印机驱动全指南:CUPS配置与排错

说实话,我在Linux下装打印机的经历,最早是被一台老款Brother DCP-7055折磨出来的。当时插上USB线,系统完全没反应,网上搜了一堆教程,不是讲Windows的就是装到一半报错,最后还是摸透了Brother官方驱动包的结…

作者头像 李华