当前位置: 首页 > news >正文

vi 入门教程:五分钟接管你的终端编辑器

vi 入门教程:五分钟接管你的终端编辑器

1. 背景与痛点(Why)

简单的说,vi 是一个文本编辑器。

你可能会问,现在有了 VS Code、Sublime Text 甚至 JetBrains 全家桶,为什么还要去学一个诞生于 1976 年、界面简陋、不支持鼠标的古董编辑器?

理由主要有两点:

  1. 无处不在的通用性:当你通过 SSH 登录到远程 Linux 服务器(比如阿里云、AWS),通常没有图形界面。此刻,vi 是你唯一能找到、且系统默认必带的编辑器。它是服务器领域的“通用语言”。
  2. 极致的效率:vi 的设计哲学是“手不离键盘”。一旦你掌握了它的逻辑,编辑速度会远超频繁在鼠标和键盘间切换的操作方式。

初学者觉得它难,是因为它违反了现代软件的直觉:打开软件居然不能直接打字?

这是因为 vi 引入了“模式”的概念。理解了模式,就理解了 vi。今天我们不谈高深的技巧,只谈如何让你存活下来。

:现在主流系统中的 vi 命令,通常实际上运行的是 Vim(Vi IMproved)。Vim 是 vi 的增强版,完全兼容 vi。本文以下内容均基于 Vim 环境,但通用逻辑适用于所有 vi 变种。

2. 快速上手(Quick Start)

MacOS 和几乎所有的 Linux 发行版都预装了 Vim。你不需要安装,直接在终端使用即可。

但是,原生的 Vim 界面非常简陋(没有行号、没有语法高亮)。为了让你在 5 分钟内获得现代化的体验,我们需要简单的配置一下。

2.1 环境配置(MacOS/Linux 通用)

请打开你的终端(Terminal),执行以下命令来创建配置文件 .vimrc

# 1. 打开(或创建)vim 配置文件
vim ~/.vimrc

此时你可能还不会编辑,没关系,请严格按以下步骤操作(这是你第一次使用 vi):

  1. 按一下键盘上的 i 键(进入插入模式,屏幕左下角会出现 -- INSERT --)。
  2. 复制并粘贴下面的配置代码。
  3. 按一下 Esc 键(退出插入模式)。
  4. 输入 :wq 并回车(保存并退出)。

推荐配置代码(.vimrc):

" 开启语法高亮,看代码更清晰
syntax on" 显示行号,方便定位
set number" 在状态栏显示光标当前位置(行、列)
set ruler" 搜索时忽略大小写(除非包含大写字母)
set ignorecase
set smartcase" 启用鼠标支持(允许你用鼠标点击定位光标,对新手友好)
set mouse=a" 缩进设置:Tab键宽度为4个空格
set tabstop=4
set shiftwidth=4
set expandtab

2.2 行业标准辅助工具

如果你想深入使用 Vim,vim-plug 是目前行业标准的插件管理器。它相当于 Node.js 的 npm,或者 Python 的 pip。

虽然入门阶段不强制安装,但了解它对未来很有帮助。

# MacOS/Linux 安装 vim-plug (可选)
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

没问题。为了降低认知负担,我把命令拆分为“生存必备”“效率进阶”两张表。

初学者只需要死记硬背第一张表即可存活;当你觉得手速跟不上脑速时,再来查阅第二张表。

3. 核心命令/操作速查(Cheatsheet)

表 1:基础生存指令(存活必看)

这部分命令覆盖了 80% 的日常使用场景。

功能描述 命令/代码 关键参数说明 备注
模式切换
进入插入模式 i insert 在光标开始输入
进入插入模式 a append 在光标开始输入
回到普通模式 Esc - 迷路时狂按它就对了
基础移动 (尽量少用方向键)
左 下 上 右 h j k l - 对应手指在键盘自然放置的位置
编辑操作
删除当前行 dd delete 其实是剪切,可配合 p 粘贴
复制当前行 yy yank 复制整行
粘贴 p paste 粘贴在光标之后
撤销 u undo 后悔药,这也是必须用 vi 的理由之一
保存与退出 需在普通模式下输入 : 进入
保存 :w write 也就是 Save
退出 :q quit 如果文件未保存,会提示错误
强制退出 :q! - 不保存直接退出(慎用)
保存并退出 :wq - 最常用的结束动作
搜索
向下搜索 /关键词 - 输入后回车。按 n 找下一个,N 找上一个

表 2:进阶移动指令(效率倍增)

当你熟悉了上面的操作,下面的指令能让你在文本间“瞬间移动”。

功能描述 命令/代码 关键参数说明 备注
单词跳转 比按 l 键快得多
下一个单词 w word 跳到下一个单词开头
上一个单词 b back 跳到上一个单词开头
行内跳转 修改配置时的神器
行首 0 (数字零) 绝对行首
行首(非空) ^ - 跳到这一行第一个文字(忽略空格)
行尾 $ - 跳到这一行最后一个字符
长距离跳转 大文件浏览必备
跳到文件首 gg - 快速回顶端
跳到文件尾 G - 快速到底部
指定行跳转 :n n为数字 例如 :10 回车,跳到第10行
向下翻页 Ctrl + f forward 相当于 PageDown
向上翻页 Ctrl + b backward 相当于 PageUp

4. 实战场景

假设你需要修改服务器上的一个 Nginx 配置文件 nginx.conf,将端口号从 80 改为 8080

操作步骤演示:

  1. 打开文件
    在终端输入 vim nginx.conf,回车。
    (此时进入普通模式)

  2. 搜索定位
    输入 /80 并回车。光标会跳到 80 所在的位置。
    (如果不是你想要的那行,按 n 继续查找)

  3. 开始修改
    光标移动到 80 的后面,按 a 进入插入模式。
    输入 80
    (此时文本变成了 8080)

  4. 保存退出
    Esc 回到普通模式。
    输入 :wq 并回车。

结果:你已经成功在没有鼠标、没有图形界面的情况下完成了配置修改。

5. 参考资料(References)

学习 vi 是一个肌肉记忆的过程,不需要死记硬背,多用几次就熟了。以下是权威且高质量的学习资源:

  1. Vim 官方文档:最权威的参考手册。
    • 在终端输入 :help 即可查看。
  2. Vim Adventures(强烈推荐):
    • https://vim-adventures.com/
    • 一个网页游戏,通过玩游戏的方式让你学会 h, j, k, l 移动和基本操作,非常有趣。
  3. OpenVim 交互式教程
    • https://www.openvim.com/
    • 基于浏览器的交互式练习环境,手把手教学。
  4. Vim Awesome:
    • https://vimawesome.com/
    • 当你熟悉基本操作后,这里汇集了全世界最好的 Vim 插件。
http://www.jsqmd.com/news/259069/

相关文章:

  • 模拟8字轨迹
  • 吐血推荐!8款AI论文写作软件测评:本科生毕业论文全攻略
  • 第六篇:告别 setInputAction_XXX!我们给地球装上“事件总线”
  • 2026年度企业出海咨询公司榜单发布:企业出海哪家好?
  • 学长亲荐2026TOP10AI论文平台:本科生毕业论文必备测评
  • SpringBoot下获取resources目录下文件的常用方法
  • Java面试场景:互联网大厂如何考核Spring Boot与Kafka应用能力
  • ChatGPT是怎么学会接龙的?
  • 学习进度三:实验 3 Spark 和 Hadoop 的安装
  • 209_尚硅谷_继承快速入门应用实例
  • 【软考环境架构设计师】四、信息系统基础知识
  • wsl的网络模式有哪几种,有哪些区别?
  • Java企业AI转型实录:JBoltAI破解智能问答系统开发
  • 轻量级云文件系统simple-file-server,电脑秒变存储服务器
  • JBoltAI的AI应用中台:构建企业智能化的坚实基础
  • 企业上云转型的 “压舱石”—— 云服务器如何破解中小微企业数字化痛点​
  • 基于逻辑回归模型的贷款违约预测(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 一键生成专业文献综述
  • 数字经济的 “安全基石”—— 云服务器零信任架构如何筑牢数据安全防线​
  • 基于多模型比较的慢性肾病分类模型设计与优化研究(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 鸿蒙6访问内网域名异常排查
  • 2026.1.17HCSA第二次作业
  • 2026必备!本科生毕业论文AI论文网站TOP9测评
  • Node.js用crypto.createCipheriv流式加密优化
  • 猫狗识别人工智能代码基于深度学习的猫狗识别系统完整源码+数据集+项目报告(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 基于深度学习的车辆检测系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • AI 大模型时代的 “算力引擎”—— 云服务器如何支撑智能应用规模化落地​
  • 基于YOLOv5的葡萄叶片病虫害识别(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 双碳目标下的 “绿色算力”—— 云服务器如何实现节能与性能双赢​
  • 百考通AI让复杂数据从“沉默的数字”到“决策的金矿”