Linux vi/vim 编辑器:零基础也能看懂的入门指南

Linux vi/vim 编辑器:零基础也能看懂的入门指南

很多刚学 Linux 的小伙伴觉得 vi/vim 编辑器难,其实是没摸透它的 “套路”。这篇文章将用最直白的话讲清 vi/vim 怎么用,每个步骤都带例子,零基础也能一步一步跟着学。

一、先搞明白:vi 和 vim 到底是啥?

vi\vim是visual interface的简称,是Linux中最经典的文本编辑器,同图形化界面中的文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。简单说,vi/vim 就是 Linux 里的 “记事本”,专门用来编辑文本 —— 比如改系统配置、写脚本。

  • vi:Linux 自带的老版本 “记事本”,功能基础但够用;
  • vim:vi 的升级版,多了语法高亮(比如写代码时关键字会变色)、代码补全等功能,现在 Linux 里输vi命令,其实默认打开的是 vim。

不管用 vi 还是 vim,操作逻辑都一样,咱们下面统一叫 “vim”。

二、核心中的核心:vim 的 3 种工作模式

这是学好 vim 的关键!刚开始会觉得绕,但记住 “按 Esc 键能回到命令模式”,就不会慌了。先看张模式切换图,理解起来更直观:vim 三种模式的切换关系

1. 命令模式(打开就进,默认模式)

双击打开记事本会直接让你写字,但 vim 不一样 —— 打开文件后,默认进入 “命令模式”,这时按键盘不会输入文字,而是执行命令(比如移动光标、复制粘贴)。所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模式下,不能自由对文本进行编辑。

怎么进命令模式?

终端输vim 文件名就行,比如想编辑一个叫test.txt的文件,就输:

vim test.txt 
  • 如果test.txt不存在,会新建这个文件;
  • 如果文件存在,就打开已有的文件。
命令模式必学快捷键(带例子,一看就会)

这些是日常最常用的,记几个高频的就行,不用贪多:

功能快捷键例子说明
光标移动(上下左右)h/j/k/lj光标向下动 1 行,比按方向键快
跳转到文件首行gg不管光标在哪,按gg直接到第一行
跳转到文件尾行G(大写)G直接到最后一行
复制当前行yyyy,当前行内容就被 “复制” 了
粘贴复制的内容p(小写)复制后按p,内容粘在光标下一行
删除当前行dddd,当前行就被 “删掉” 了
撤销上一步操作u删错了?按u就能恢复

比如你想复制第 3 行,粘到第 5 行下面:

  1. 3G跳转到第 3 行;
  2. yy复制这行;
  3. 5G跳转到第 5 行;
  4. p粘贴,内容就到第 6 行了。

2. 输入模式(要写字,先切这个模式)

命令模式不能输入文字,想写字就得切到 “输入模式”。

怎么切到输入模式?

在命令模式下按下面这些键,按完后屏幕左下角会出现 “INSERT” 或 “插入” 字样,就说明能写字了:

快捷键效果什么时候用?
i光标在哪,就从哪开始写想在光标位置补字时
a从光标下一个字符开始写想在光标后加字时
o在光标所在行下面新建一行写想另起一行写内容时

比如你光标在 “hello” 的 “e” 上面:

  • i,输入 “x”,会变成 “hxello”;
  • a,输入 “x”,会变成 “hexllo”;
  • o,会在下面新起一行,直接能写。
怎么退回命令模式?

写完字想执行复制、删除这些命令,得先退回到命令模式 ——不管在输入模式下按什么,按一下 Esc 键就回去了

3. 底线命令模式(保存、退出用这个)

想保存文件、退出 vim,就得用 “底线命令模式”,这个模式是从命令模式切过来的。

怎么切到底线命令模式?

在命令模式下按:(冒号),这时屏幕左下角会出现一个:,就可以输命令了。

底线命令模式必学命令(就记这几个,够用)
命令效果注意事项
:w保存文件,但不退出 vim写完内容先按 Esc,再输:w保存
:q退出 vim没保存文件时,用这个会报错
:q!强制退出,不保存修改写错了不想保存,就用这个
:wq保存文件并退出 vim最常用的,写完直接保存退出

比如你编辑完test.txt

  1. 按 Esc 退到命令模式;
  2. :,输:wq,按回车,就保存并退出了;如果不想保存,就输:q!,按回车强制退出。

三、新手必避的坑 + 实用小技巧

1. 最容易犯的错:模式搞混

刚学的时候经常会在命令模式下直接写字(按了半天没反应),或者在输入模式下按复制命令(结果全变成乱码)。记住:不管什么时候,操作没反应就先按 Esc 退到命令模式,再重新来。

2. 实用小技巧(能省很多时间)

  • 显示行号:在命令模式下输:set nu,屏幕左边就会显示行号,找内容更方便;想关掉行号就输:set nonu
  • 查找内容:在命令模式下输/关键词(比如/hello),按回车就能找到文件里所有 “hello”,按n跳下一个,按N跳上一个。
  • 批量删除:比如想删第 5 到第 10 行,在命令模式下按5G跳第 5 行,再按5dd(5 是行数,dd 是删行),就能删掉 5 行(第 5 到第 10 行)。

四、小试牛刀

跟着做一遍,马上就有感觉了:

  1. 打开终端,输vim test.txt(新建并打开 test.txt);
  2. i进入输入模式,输入 “我在学 vim 编辑器”;
  3. 按 Esc 退到命令模式,按:w保存(这时没退出,还能继续写);
  4. o在下面新起一行,输入 “跟着 PPT 学,不难!”;
  5. 按 Esc 退到命令模式,按:wq保存并退出;
  6. cat test.txt,就能看到刚才写的内容了。

五、总结:记住这 3 点,vim 就入门了

  1. 打开 vim 先在命令模式,想写字切输入模式(按 i/a/o),想保存退出切底线命令模式(按:);
  2. 不管在哪,按 Esc 能回到命令模式,这是 “救命键”;
  3. 先记高频命令(比如 yy 复制、dd 删除、:wq 保存退出),用多了自然就熟了。

刚开始可能会忘命令,没关系,把这篇文章存起来,用到的时候翻一翻,练个两三次就能上手了!

六、命令模式以及底线命令模式扩展

1.vi/vim 命令模式快捷键大全

功能分类快捷键功能描述
模式切换与输入i在光标当前位置进入输入模式
a在光标当前位置之后进入输入模式
I在当前行的开头进入输入模式
A在当前行的结尾进入输入模式
o在当前光标下一行进入输入模式
O在当前光标上一行进入输入模式
r替换光标所在位置的单个字符
R进入连续替换模式(按 Esc 退出)
s删除光标所在字符并进入输入模式
cw删除当前单词并进入输入模式(修改单词)
cc删除当前行并进入输入模式(重写行)
光标移动h / 左箭头向左移动 1 个字符
j / 下箭头向下移动 1 行
k / 上箭头向上移动 1 行
l / 右箭头向右移动 1 个字符
0(数字零)移动光标到当前行的开头
$移动光标到当前行的结尾
^跳转到当前行第一个非空字符
w跳至下一个单词的开头
W跳至下一个单词开头(忽略特殊符号)
b跳至上一个单词的开头
B跳至上一个单词开头(忽略特殊符号)
gg跳至文件首行
G(大写)跳至文件尾行
nG(n 为数字)跳至文件第 n 行
H跳至当前屏幕顶部行
M跳至当前屏幕中间行
L跳至当前屏幕底部行
Ctrl+u向上翻半屏
Ctrl+d向下翻半屏
Ctrl+f向下翻一整屏
Ctrl+b向上翻一整屏
PageUp(PgUp)向上翻页
PageDown(PgDn)向下翻页
文本复制 / 剪切 / 删除yy复制光标所在行
nyy(n 为数字)复制当前行及下方共 n 行
y0从光标位置复制到当前行首
y$从光标位置复制到当前行尾
yw复制从光标开始的整个单词
dd删除(剪切)光标所在行
ndd(n 为数字)删除当前行及下方共 n 行
d0从光标位置删除到当前行首
d$从光标位置删除到当前行尾
dw删除从光标开始的整个单词
dW删除整个单词(忽略特殊符号)
db删除到上一个单词的开头
dG从当前行删除到文件末尾
dgg从当前行删除到文件开头
x删除光标所在位置的字符
X(大写)删除光标前一个字符
J(大写)将当前行与下一行合并(删除换行符)
粘贴与撤销p(小写)将复制 / 剪切的内容粘贴到光标下一行
P(大写)将复制 / 剪切的内容粘贴到光标上一行
u撤销上一步操作
Ctrl+r反撤销(恢复被撤销的操作)
.(点号)重复上一次的操作
查找与替换/ 关键词从光标位置向下查找关键词
? 关键词从光标位置向上查找关键词
n(小写)跳至下一个匹配的查找结果
N(大写)跳至上一个匹配的查找结果
*(星号)向下查找当前光标所在的单词
#(井号)向上查找当前光标所在的单词

2.vi/vim 底线命令模式命令大全

功能分类命令功能描述
文件保存与退出:w保存文件(不退出)
:q退出 vim(文件未修改时)
:q!强制退出,放弃所有修改
:wq / :x保存文件并退出
ZZ(大写)快捷键保存并退出(无需输入冒号)
显示与设置:set nu显示行号
:set nonu隐藏行号
:set paste开启粘贴模式(解决粘贴乱码)
:set fileencoding=utf-8设置文件编码为 UTF-8
查找与替换:s / 旧内容 / 新内容替换当前行第一个匹配项
:s / 旧内容 / 新内容 /g替换当前行所有匹配项(g = 全局)
:% s / 旧内容 / 新内容 /g替换整个文件所有匹配项(%= 全文)
:n1,n2s / 旧内容 / 新内容 /g替换第 n1 行到第 n2 行的所有匹配项
其他实用命令:! 命令执行 Linux 外部命令(不退出 vim),如:!ls
:recover恢复意外关闭的文件内容

Read more

老 Intel Mac Tahoe 26.3 部署 OpenClaw 极简指南

前言:手中的老款 Intel MacBook Pro 或 iMac 感觉力不从心?升级到最新的 macOS Tahoe 26.3 后,除了系统更流畅,它还能变身成为强大的 AI 机器人控制中枢。 本文专为 Intel 芯片 Mac 用户 打造,摒弃复杂的本地大模型部署(那是 M 系列芯片或高端 PC 的事),主打 “云端大脑 + 本地终端” 的轻量级方案。无需 Jetson 开发板,只需一台老 Mac,即可通过 OpenClaw 体验最前沿的 AI 交互。 🚀 核心策略:扬长避短 * ❌ 不要做:尝试在 Intel i5/

By Ne0inhk

Ubuntu 26.04 LTS 正式发布,向更高效、更流畅的现代化企业开源 Linux 桌面进化!

戳下方名片,关注并星标! 回复“1024”获取2TB学习资源! 👉体系化学习:运维工程师打怪升级进阶之路 4.0 —   特色专栏  — MySQL/PostgreSQL/MongoDB ElasticSearch/Hadoop/Redis Kubernetes/Docker/DevOps Kafka/RabbitMQ/Zookeeper 监控平台/应用与服务/集群管理 Nginx/Git/Tools/OpenStack 大家好,我是民工哥! Ubuntu 26.04 LTS 每日构建正式发布!未来桌面原来长这样,快来尝鲜体验吧。 向更高效、更流畅的现代化企业与开源 Linux 桌面进化! 2025 年 10 月 22 日,Canonical 已发布了即将到来的

By Ne0inhk
ubuntu 内网自建apt源(apt-mirror)

ubuntu 内网自建apt源(apt-mirror)

文章目录 * 1. 安装apt-mirror * 2. 更新apt镜像数据 * 3. 创建web服务(以nginx为例) * 4. 客户端使用 * 5. 添加一个新源(以docker为例) 1. 安装apt-mirror * 官网地址:https://apt-mirror.github.io/ * 安装 $ apt-getinstall apt-mirror * 配置文件 /etc/apt/mirror.list * 配置代理 * 修改存储位置 修改配置(非必要) set unlink 1set use_proxy on set http_proxy 10.10.xxx.xx:1111 set proxy_user user

By Ne0inhk
Flutter 三方库 built_value_test_basic 的鸿蒙化适配指南 - 打造不可变数据模型的自动化测试底座

Flutter 三方库 built_value_test_basic 的鸿蒙化适配指南 - 打造不可变数据模型的自动化测试底座

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 built_value_test_basic 的鸿蒙化适配指南 - 打造不可变数据模型的自动化测试底座 在大型鸿蒙应用的开发中,数据模型的不可变性(Immutability)是确保系统稳定性的关键。built_value 系列库通过代码生成技术,为 Dart 提供了强大的不可变对象支持。而 built_value_test_basic 则是其配套的测试利器,专门用于验证这些复杂模型的构建、序列化及逻辑一致性。本文将深入讲解如何在 OpenHarmony(鸿蒙)环境下,结合 Flutter 的测试框架,为你的数据模型构建一道坚实的工程防线。 前言 随着鸿蒙系统(HarmonyOS)进入原生应用开发的新阶段,对代码质量的要求也达到了前所未有的高度。在分布式场景下,数据在不同终端间传递,任何微小的模型定义错误都可能导致整个链路的崩溃。built_value_

By Ne0inhk