欢迎光临
我们一直在努力

Linux学习第四天|Vim编辑器从入门到精通:模式切换与核心命令

✨ 前言:Linux学习打卡第四天!今天正式解锁了Vim编辑器,这个被称为“编辑器之神”的工具,初学时确实让人头大,但掌握了模式切换和核心命令后,就能感受到它的高效与强大。这篇博客整理了今天学习的Vim核心知识点,全程图文结合+实操示例,适合Linux新手快速入门,也方便自己后续复习。


一、Vim的三大工作模式

Vim的核心设计理念是模式化操作,这也是它和nano等编辑器最大的区别。理解这三种模式的切换,是掌握Vim的第一步:

  • 命令模式(默认):打开文件后默认进入,只能执行快捷键(如复制、删除、移动光标),无法直接输入文字。
  • 输入模式:用于编辑文本,输入的内容会直接显示在文件中。
  • 底线命令模式:用于执行保存、退出、查找替换等全局操作。

模式切换关系图

#mermaid-svg-nkDOFJCl6PfL2Uw2{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .error-icon{fill:#552222;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .marker.cross{stroke:#333333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-nkDOFJCl6PfL2Uw2 p{margin:0;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .cluster-label text{fill:#333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .cluster-label span{color:#333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .cluster-label span p{background-color:transparent;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .label text,#mermaid-svg-nkDOFJCl6PfL2Uw2 span{fill:#333;color:#333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .node rect,#mermaid-svg-nkDOFJCl6PfL2Uw2 .node circle,#mermaid-svg-nkDOFJCl6PfL2Uw2 .node ellipse,#mermaid-svg-nkDOFJCl6PfL2Uw2 .node polygon,#mermaid-svg-nkDOFJCl6PfL2Uw2 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .rough-node .label text,#mermaid-svg-nkDOFJCl6PfL2Uw2 .node .label text,#mermaid-svg-nkDOFJCl6PfL2Uw2 .image-shape .label,#mermaid-svg-nkDOFJCl6PfL2Uw2 .icon-shape .label{text-anchor:middle;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .rough-node .label,#mermaid-svg-nkDOFJCl6PfL2Uw2 .node .label,#mermaid-svg-nkDOFJCl6PfL2Uw2 .image-shape .label,#mermaid-svg-nkDOFJCl6PfL2Uw2 .icon-shape .label{text-align:center;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .node.clickable{cursor:pointer;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .arrowheadPath{fill:#333333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-nkDOFJCl6PfL2Uw2 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-nkDOFJCl6PfL2Uw2 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-nkDOFJCl6PfL2Uw2 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .cluster text{fill:#333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .cluster span{color:#333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-nkDOFJCl6PfL2Uw2 rect.text{fill:none;stroke-width:0;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .icon-shape,#mermaid-svg-nkDOFJCl6PfL2Uw2 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .icon-shape p,#mermaid-svg-nkDOFJCl6PfL2Uw2 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .icon-shape rect,#mermaid-svg-nkDOFJCl6PfL2Uw2 .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-nkDOFJCl6PfL2Uw2 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-nkDOFJCl6PfL2Uw2 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-nkDOFJCl6PfL2Uw2 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

输入 i/a/o

按 ESC 键

输入 :

命令以回车结束

输入 :wq

打开文件: vi filename

命令模式

输入模式

底线命令模式

保存并退出


二、命令模式 → 输入模式:6种进入方式

在命令模式下,通过不同的快捷键可以在不同位置进入输入模式,大大提高编辑效率:

模式命令描述
命令模式 i 在当前光标位置进入输入模式
命令模式 a 在当前光标位置之后进入输入模式
命令模式 I 在当前行的开头,进入输入模式
命令模式 A 在当前行的结尾,进入输入模式
命令模式 o 在当前光标下一行进入输入模式
命令模式 O 在当前光标上一行进入输入模式
输入模式 esc 任何情况下输入 esc 都能回到命令模式

三、命令模式:光标移动与文本操作

命令模式是Vim的核心,所有高效的文本操作都在这里完成。

1. 光标移动

模式命令描述
命令模式 上箭头 / k 向上移动光标
命令模式 下箭头 / j 向下移动光标
命令模式 左箭头 / h 向左移动光标
命令模式 右箭头 / l 向后移动光标
命令模式 0 移动光标到当前行的开头
命令模式 $ 移动光标到当前行的结尾
命令模式 PageUp (PgUp) 向上翻页
命令模式 PageDown (PgDn) 向下翻页
命令模式 / 进入搜索模式
命令模式 n 向下继续搜索
命令模式 N 向上继续搜索

2. 复制、删除与撤销

模式命令描述
命令模式 dd 删除光标所在行的内容
命令模式 ndd n是数字,表示删除当前光标向下n行
命令模式 yy 复制当前行
命令模式 nyy n是数字,复制当前行和下面的n行
命令模式 p 粘贴复制的内容
命令模式 u 撤销修改
命令模式 Ctrl + r 反向撤销修改
命令模式 gg 跳到首行
命令模式 G 跳到行尾
命令模式 dG 从当前行开始,向下全部删除
命令模式 dgg 从当前行开始,向上全部删除
命令模式 d$ 从当前光标开始,删除到本行的结尾
命令模式 d0 从当前光标开始,删除到本行的开头

四、底线命令模式:保存、退出与全局设置

在命令模式下输入 : 即可进入底线命令模式,执行全局操作:

模式命令描述
底线命令模式 :wq 保存并退出
底线命令模式 :q 仅退出(文件未修改时可用)
底线命令模式 :q! 强制退出(不保存修改)
底线命令模式 :w 仅保存
底线命令模式 :set nu 显示行号
底线命令模式 :set paste 设置粘贴模式(避免粘贴时自动缩进混乱)

五、学习总结与感悟

今天的学习让我深刻体会到Vim“编辑器之神”的称号并非浪得虚名。虽然一开始被各种模式和快捷键搞得晕头转向,但当我理解了“模式切换”的核心逻辑后,就发现它的设计其实非常高效。

  • 模式化思维:命令模式负责高效操作,输入模式负责精准编辑,底线模式负责全局控制,各司其职。
  • 高效快捷键:所有操作都可以通过键盘完成,无需鼠标,熟练后编辑速度会大幅提升。
  • 新手避坑:永远记得,当你不知道自己在哪个模式时,按一下 ESC 键,它总能把你带回安全的命令模式。

Vim的学习是一个循序渐进的过程,今天掌握的只是冰山一角。明天我计划学习更多高级功能,如多文件编辑、宏录制等,继续向“Vim大师”的目标前进!


核心命令速记(收藏备用)

# 模式切换
i/a/o/I/A/O # 从命令模式进入输入模式
ESC # 从任何模式回到命令模式
: # 从命令模式进入底线命令模式

# 光标移动
k/j/h/l # 上下左右
0/$ # 行首/行尾
gg/G # 文件首/尾

# 文本操作
dd/yy/p # 删除/复制/粘贴
u/Ctrl+r # 撤销/反撤销

# 保存退出
:wq # 保存并退出
:q! # 强制退出不保存

🔗 相关推荐:Linux学习打卡系列将持续更新,新手可关注,一起从0到1吃透Linux命令行~

赞(0)
未经允许不得转载:171主机测评 » Linux学习第四天|Vim编辑器从入门到精通:模式切换与核心命令
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址