news 2026/5/13 19:26:52

从劝退到离不开:Vim新手入门实战博客(附高效技巧)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从劝退到离不开:Vim新手入门实战博客(附高效技巧)

文章目录

  • 前言
  • 💙一、vim是什么?
  • 💜二、为什么要学习vim?
  • 💚三、vim总览
  • 💔四、vim的基本操作
    • 4.1vim正常模式命令集(命令模式)
    • 4.2vim底行模式命令集
    • 4.3vim视图模式
  • 💗五、一些小技巧
  • 💖六、对vim作配置
  • 总结


前言

像大多数人那样,第一次接触vim编辑器的我,浑身都不习惯,为什么不使用VScode来写代码,反倒是用这个看起来像是几百年前的东西来写,我不理解。但在我熟练掌握之后,我才明白,存在即合理,它存在,就有它的道理


💙一、vim是什么?

  • 就拿我们熟悉的老朋友VScode来讲,VScode属于IDE,全程也叫集成开发环境,也就是说VScode包办了写代码,编译代码,调试代码等等工作,是一个集成工具!
  • 而vim呢?vim就是单单拿来写代码的工具,也就是只负责编辑文本,不负责编辑,运行,调试!

💜二、为什么要学习vim?

很多人会问:“我使用那些IDE工具写代码不像吗?为什么要去搞这个反人类的vim编辑器呢?”

1.定位不同:“定制手术刀"vs"全套工具箱”

维度vim主流IDE
核心定位纯文本编辑器,极致的效率一站式开发环境,包办全流程
功能边界只做文本编辑相关的事,不负责编译,调试等从写代码,编译运行到调试等,所有环节都给你安排
启动与资源毫秒级启动,几乎不占内存,服务器上随手就能开启动慢、吃内存,打开大项目经常要等半天

2.操作逻辑:“全键盘流"vs"鼠标+键盘”

  • IDE:依赖鼠标,“手脑来回切换”
    用IDE写代码时,你需要很频繁在键盘和鼠标之间切换,思路很容易被打乱,编辑效率也被来回切换的动作拖慢
  • vim:纯键盘流,“手永远不离开键盘”
    vim的核心是[模式化操作],所有移动、修改、复制、删除、搜索的动作,都可以用键盘快捷键完成。熟练后,你写代码手全程放在键盘上,连方向键都不用碰

💚三、vim总览

vim最主要的由三种模式,分别是命令模式(command mode)、插入模式(insert mode)和底行模式(last line mode),各模式的功能区分如下:

  • 正常/普通/命令模式(Normal mode)
    控制屏幕的移动,字符、字或行的删除,移动复制某区段及进入insert mode下,或者到last line mode
  • 插入模式(insert mode)
    只有在insert mode下,才可以做文本输入,按Esc健可回到命令行模式。该模式是我们后面用的最频繁的编辑模式
  • 底行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,按[shift + ;]即可进入该模式


💔四、vim的基本操作

  • 在命令行输入vim 文件名称时,就能进入到文件的编辑画面了,刚开始进入的时候模式默认为命令模式
czh@VM-0-3-ubuntu:~/code/code4-17$ ll total8drwxrwxr-x2czh czh4096Apr1716:46./drwxrwxr-x25czh czh4096Apr1716:46../-rw-rw-r--1czh czh0Apr1716:46test.c czh@VM-0-3-ubuntu:~/code/code4-17$ vim test.c//---进入文件的编辑页面,默认为命令模式

  • [正常模式]切换至[插入模式],插入模式才能输入内容
    输入a
    输入i
    输入o

  • [插入模式]切换至[正常模式]
    目前处于[插入模式],就只能一致输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下[Esc]键转到[正常模式]再删除文字

  • [正常模式]切换为[末行模式]
    [shift + ;],也就是[:]

  • 退出vim及保存文件,在[正常模式]下,按一下[:]进入[底行模式]
    :w(底行模式下输入w,保存当前内容到文件)
    :wq(输入wq,保存当前内容到文件并退出vim编辑页面)
    :q!(输入q!,不保存并退出vim编辑页面)
    :wq!(输入wq!,强制保存并退出)


4.1vim正常模式命令集(命令模式)

  • 插入模式
    i切换到插入模式[insert mode],从光标开始位置开始输入文件
    a进入插入模式后,是从目标光标所在位置的下一个位置开始输入文字
    o进入插入模式后,是插入新的一行,从行首开始输入文字
  • 从插入模式切换为命令模式
    Esc
  • 移动光标
  • vim可以用键盘上的光标来上下左右移动,但正规的vim使用小写英文字母[h],[j],[k],[l],分别取控制左、下、上、右移一格
  • G:移动到文章最后行的"行首"
  • $:移动到光标所在行的"行尾"
  • ^:移动到光标所在行的"行首"
  • w:光标跳到下个字的开头
  • e:光标跳到下个字的字尾
  • b:光标跳到上个字的开头
  • #l:光标移动到该行的第#个位置,如:5l,56l
  • gg:进入到文本开始(光标回到首行行首)
  • shift+g:进入文本末端(与大写G功能相同,本质是一个按键)
  • ctrl+b:屏幕往后移动一页
  • ctrl+f:屏幕往前移动一页
  • ctrl+u:屏幕往后移动半页
  • ctrl+d:屏幕往前移动半页
  • 删除文字
  • x:每按一次,删除光标所在位置的一个字符
  • #x:例如,[6x]表示删除光标所在位置的"后面(包含自己在内)"6个字符
  • X:大写的X,每按一次,删除光标所在位置的"前面"一个字符
  • #X:例如,[20X]表示删除光标所在位置的"前面"20个字符
  • dd:删除光标所在行
  • #dd:从光标所在行开始删除#行,例如[5dd],删除自己所在的一行还有下面的4行
  • 复制
  • yw:将光标所在之处到字尾的字符复制到缓冲区中
  • #yw:复制#个字到缓冲区
  • yy:复制光标所在行到缓冲区
  • #yy:例如,[6yy]表示拷贝从光标所在的该行(包括该行)往下数的6行文字
  • p:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能
  • 替换
  • r:替换光标所在处的字符,例如[r+5],就把当前光标选中的字符替换成5
  • R:替换光标所到之处的字符,直到按下[Esc]为止
  • 撤销上一次操作
  • u:如果你误执行一个命令,想要撤回,可以马上按下[u],[u]可以执行多次
  • ctrl + r:撤销的恢复(撤销你的撤销)
  • 更改
  • cw:删除光标所在处的字到字尾处,随后进入插入模式
  • c#w:例如,[c3w]表示更改3个字
  • 跳转至指定的行
  • ctrl + g:列出光标所在行的行号(在左下角显示行号)
  • #G:例如,[15G],表示移动光标至文章的第15行行首

4.2vim底行模式命令集

在使用底行模式之前,请记住先按[Esc]确保您目前正处于正常模式,再按[:]即可进入底行模式

  • 列出行号

  • set nu:输入[set nu]后,会在文件的每一行前面列出行号

  • 跳到文件中的某一行

  • #:[#]号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行

  • 查找字符

  • /关键字:先按[/]键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按[n]会往后寻找到您要的关键字为止

  • ?关键字:先按[?]键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按[n]会往前寻找找到您要的关键字为止

  • 保存文件

  • w:在冒号输入字母[w]就可以保存起来保存就是写

  • 离开vim

  • q:按[q]就是退出,单纯退出,写的东西并没有保存!如果无法退出vim,可以在[q]后跟一个[!]强制离开vim

  • wq:一般建议离开时,搭配[w]一起使用,这样在退出的时候还可以保存文件

  • !wq:强制保存退出

4.3vim视图模式

很多刚用 Vim 的人,只会 i 进插入模式改文字,选文本习惯性切鼠标拖选。其实 Vim自带视图模式,纯键盘就能精准选中字符、整行、矩形块,批量删改、复制缩进、批量注释全都能搞定,学会直接告别鼠标选文本。

  • 1.字符视图 v
  • 进入:普通模式按小写 v
  • 特点:按单个字符精准选区
  • 操作:按 h/j/k/l 上下左右扩展选中范围
  • 适用场景:只选半行、几个单词、一小段局部文字,精细小范围编辑
  • 2. 行视图 V(大写)
  • 进入:普通模式按大写 V
  • 特点:一选就是一整行,按上下键直接多选整行
  • 适用场景:批量操作整段代码、连续多行复制删除、整行移动
  • 3. 块视图 Ctrl + v(最重要)
  • 进入:普通模式按 Ctrl + v
  • 特点:矩形列块选中,不是按行流选中,是竖着选一块
  • 适用场景(博客必举例子):
  • 批量给多行开头加注释 //
  • 批量删除每行前面多余的空格、序号
  • 批量对齐代码、批量修改竖列同一位置字符

操作方法:
v(字符视图)
假设我们想删除第一行hello czh中的hello

  • 光标移到第一行h
  • v
  • 4 次 l往右选中整个hello
  • d直接删完

V(行视图)
想一次性复制 / 删除连续好多行代码,就用行视图。假设我们想删除以上5行代码的前4行

  • 光标移动到第一行的h
  • 在首行按下V进入行视图模式
  • 连续按3下j选中4行代码
  • d删除


ctrl+v(块视图)
不像字符视图只能一个一个选中,也不像行视图那样只能一行一行选中,块视图能精准选中任何区域进行操作,假设我们把每行的hello中的he给删了该怎么操作

  • 光标移动到第一行的h上
  • ctrl+v进入块视图
  • 按1下l选中第一行的he,再按4下j选中所有行的he
  • d删除

💗五、一些小技巧

  • ! + 最近一次命令的开头字母 = 再次调用以这个字母开头的最近一次命令

  • -vim + 行数 文件名 = 打开文件时光标锁定在我们想要指定的行数

💖六、对vim作配置

这块大家知道一下即可

总结

vim是新手学习linux必学的工具,它极简轻量,与我们之前的vscode有着明显的区别,学习这些命令能让我们更快更高效的处理解决问题。

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

自动化脚本编排:如何在青龙面板中构建多服务定时任务系统

自动化脚本编排:如何在青龙面板中构建多服务定时任务系统 【免费下载链接】huajiScript 滑稽の青龙脚本库 项目地址: https://gitcode.com/gh_mirrors/hu/huajiScript 在数字生活日益复杂的今天,我们每天需要处理各种平台签到、优惠领取、服务检查…

作者头像 李华
网站建设 2026/5/13 19:24:05

taotokentokenplan套餐如何为高频用户节省使用成本

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 taotoken tokenplan套餐如何为高频用户节省使用成本 对于每月有稳定大模型调用需求的开发者或小型工作室而言,成本的可…

作者头像 李华
网站建设 2026/5/13 19:18:05

OBS Source Record插件:基于滤镜架构的高效多源同步录制技术方案

OBS Source Record插件:基于滤镜架构的高效多源同步录制技术方案 【免费下载链接】obs-source-record 项目地址: https://gitcode.com/gh_mirrors/ob/obs-source-record OBS Source Record插件通过创新的滤镜架构设计,解决了传统OBS Studio在多源…

作者头像 李华