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

news/2026/1/17 18:29:16/文章来源:https://www.cnblogs.com/thxiso/p/19496926

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.mzph.cn/news/1174439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟8字轨迹

多传感器信息融合,卡尔曼滤波算法的轨迹跟踪与估计AEKF——自适应扩展卡尔曼滤波算法 AUKF——自适应无迹卡尔曼滤波算法 UKF——无迹卡尔曼滤波算法 三种不同的算法实现轨迹跟踪在轨迹跟踪的江湖里,传感器就像一群各怀绝技的探子——GPS报位置,IMU测加…

2026年度企业出海咨询公司榜单发布:企业出海哪家好?

随着中国企业全球化进入“深水区”,单纯的跨境卖货已无法满足企业增长需求。“企业出海咨询公司哪家好?” 成为了2026年出海圈的高频搜索词。企业在选择合作伙伴时,面临着从战略合规、品牌建设到流量变现的不同路径选择。基于市场口碑、团队背…

学长亲荐2026TOP10AI论文平台:本科生毕业论文必备测评

学长亲荐2026TOP10AI论文平台:本科生毕业论文必备测评 2026年AI论文平台测评:为何要关注这些工具? 随着人工智能技术的不断进步,AI写作工具在学术领域的应用越来越广泛。对于本科生而言,撰写毕业论文不仅是学业的重要环…

SpringBoot下获取resources目录下文件的常用方法

哈喽,大家好,今天给大家带来SpringBoot获取resources目录下文件的常用方法,示例中的方法是读取resources目录下的txt和xlsx文件,并将xlsx导出到excel的简单写法。完整代码放在最后。通过this.getClass()方法获取method1 - method4…

吐血推荐!8款AI论文写作软件测评:本科生毕业论文全攻略

吐血推荐!8款AI论文写作软件测评:本科生毕业论文全攻略 2026年AI论文写作工具测评:精准筛选,高效助力本科毕业论文 在当前高校教育环境中,本科生撰写毕业论文面临着诸多挑战,包括选题构思困难、文献资料繁杂…

Java面试场景:互联网大厂如何考核Spring Boot与Kafka应用能力

场景:互联网大厂Java小白求职者面试 超好吃是一位刚毕业的Java程序员,今天他来到了某互联网大厂参加面试,面试官是技术专家刘老师。以下是他们的对话:第一轮问题:Spring Boot与Web开发基础 面试官: “超好吃…

第六篇:告别 setInputAction_XXX!我们给地球装上“事件总线”

View Post第六篇:告别 setInputAction_XXX!我们给地球装上“事件总线”本专栏旨在手把手带你从零开始,基于开源三维地球引擎 **Cesium** 封装一套功能完善、可复用的 **WebGIS 增强型 SDK**。内容涵盖核心封装思路、…

学习进度三:实验 3 Spark 和 Hadoop 的安装

学习进度三:实验 3 Spark 和 Hadoop 的安装1.安装 Hadoop 和 Spark2.HDFS 常用操作3. Spark 读取文件系统的数据 准备工作(1)在 spark-shell 中读取 Linux 系统本地文件“/home/hadoop/test.txt ”,然后统计出文…

209_尚硅谷_继承快速入门应用实例

209_尚硅谷_继承快速入门应用实例1.面向对象编程---快速入门案例和继承带来的便利 2.面向对象编程---案例代码 3.面向对象编程---案例输出

【软考环境架构设计师】四、信息系统基础知识

【软考环境架构设计师】四、信息系统基础知识pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &qu…

ChatGPT是怎么学会接龙的?

ChatGPT是怎么学会接龙的?揭秘大模型训练的第一课 你有没有想过,ChatGPT是怎么学会一个词接一个词地说话的?当你问它"今天天气怎么样",它为什么能流畅地回答"今天天气晴朗,温度适中,很适合外…

wsl的网络模式有哪几种,有哪些区别?

WSL2(从WSL 2.0.0开始)提供了四种网络模式,它们在网络可见性和配置方式上有明显区别,可以根据自己的开发需求进行选择和配置。为了快速了解,我整理了一张对比表格:模式 核心描述 访问方式 典型场景NAT 默认模式。…

Java企业AI转型实录:JBoltAI破解智能问答系统开发

在AI技术浪潮的推动下,Java企业纷纷踏上智能化转型之路在AI技术浪潮的推动下,Java企业纷纷踏上智能化转型之路,旨在通过AI应用开发提升业务效率和用户体验。我们公司也紧跟时代步伐,决定开发一款智能问答系统,以提供更…

轻量级云文件系统simple-file-server,电脑秒变存储服务器

Simple File Server 一个简单的文件服务器,使用 Go 和 Gin 框架构建,支持文件上传、下载和静态文件服务。 功能特性 文件上传:支持普通文件上传和分片上传(multipart upload) 文件下载:通过 HTTP GET 请…

JBoltAI的AI应用中台:构建企业智能化的坚实基础

在当今数字化与智能化交织的时代,企业对于AI技术的需求日益增长,如何高效、稳定地集成AI能力成为企业转型的关键。JBoltAI的AI应用中台,作为企业智能化的重要基础设施,不仅为Java生态下的AI应用开发提供了强有力的支撑&#xff0c…

企业上云转型的 “压舱石”—— 云服务器如何破解中小微企业数字化痛点​

​在数字经济加速渗透的今天,中小微企业的数字化转型不再是 “选择题”,而是 “生存题”。但资金有限、技术人才匮乏、运维能力薄弱等现实困境,让众多企业在数字化门口望而却步。云服务器的出现,以 “按需付费、弹性伸缩、简化运维…

基于逻辑回归模型的贷款违约预测(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于逻辑回归模型的贷款违约预测(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 Python大数据分析商业分析商业数据分析机器学习数据可视化 jupyter数据分析项目 [绿圆]贷款违约预测 [绿圆]逻辑回归模型 Python分析报告项目&a…

一键生成专业文献综述

在浩如烟海的学术文献中,如何高效地梳理前人成果、精准定位研究空白,是每一位研究者面临的首要挑战。撰写一篇高质量的文献综述,不仅需要广博的阅读量,更需要强大的信息整合与批判性思维能力。这个过程往往耗时费力,令…

数字经济的 “安全基石”—— 云服务器零信任架构如何筑牢数据安全防线​

数字化转型过程中,数据已成为企业核心资产,但云原生架构的普及使安全边界逐渐模糊,传统 “边界防护” 模式难以应对容器逃逸、API 漏洞、内部违规等新型安全威胁。基于零信任 “永不信任、始终验证” 核心理念的云服务器安全体系,…

鸿蒙6访问内网域名异常排查

最近接到用户反馈,使用mate60pro升级到鸿蒙6.0版本后,访问校内应用异常,无法打开校内应用。 与用户了解情况如下: 手机型号:华为mate60pro 系统版本:6.0.0.120(SP6C00E120R4P11patch12) 正常获取了内网地址…