news 2026/4/18 8:52:03

1、深入探索 vi 与 Vim 编辑器:功能、使用与克隆版本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1、深入探索 vi 与 Vim 编辑器:功能、使用与克隆版本

深入探索 vi 与 Vim 编辑器:功能、使用与克隆版本

1. 文本编辑的重要工具:vi 与 Vim

文本编辑是计算机系统中极为常见的任务之一,而 vi 则是系统中非常实用的标准文本编辑器。借助 vi,用户能够创建新文件,也可以编辑任何现有的纯文本文件。不过,和早期 Unix 系统开发的许多经典实用工具一样,vi 以操作复杂、难以掌握而闻名。

Bram Moolenaar 开发的增强版克隆编辑器 Vim(“vi Improved”),在很大程度上改变了人们对 vi 的这种印象。Vim 具备众多便利功能、可视化引导以及帮助屏幕,已成为最受欢迎的 vi 版本。

2. 相关资源与平台
  • O’Reilly 相关资源:提供了一系列与 vi 和 Unix 相关的书籍,如《vi Editor Pocket Reference》《Unix in a Nutshell》等。
  • oreilly.com:这不仅是 O’Reilly 书籍的完整目录,还能找到新闻、活动、文章、博客、样章和代码示例的链接。
  • oreillynet.com:是开发者关注开放和新兴技术(包括新平台、编程语言和操作系统)的重要门户。
  • 会议信息:O’Reilly Media 会举办各类会议,汇聚不同的创新者,推动革命性行业的发展。可访问 conferences.oreilly.com 了解即将举办的活动。
  • Safari 书架(safari.oreilly.com):这是程序员和 IT 专业人员的首选在线参考库,可搜索超过 1000 本书籍,订阅者能在数秒内找到关键问题的答案,还能免费试用。
3. 学习内容概述

学习 vi 和 Vim 编辑器的内容涵盖了多个方面,具体结构如下:
| 部分 | 内容 | 说明 |
| ---- | ---- | ---- |
| 第一部分 | 基础与高级 vi | 帮助用户快速上手 vi,并掌握高级使用技巧,包括文件的打开、关闭、简单编辑、快速移动、高级编辑等功能,还会介绍 ex 编辑器和全局替换等内容。 |
| 第二部分 | Vim | 深入介绍最流行的 vi 克隆版本 Vim,涵盖其概述、获取途径、相对于 vi 的主要改进(如内置帮助、启动和初始化选项、新的移动命令等)、多窗口编辑、Vim 脚本、图形化界面(gvim)以及针对程序员的增强功能等。 |
| 第三部分 | 其他 vi 克隆版本 | 介绍 nvi、elvis 和 vile 这三个流行的 vi 克隆版本,包括它们的作者、历史、重要命令行参数、在线帮助、初始化、多窗口编辑、GUI 界面、扩展正则表达式、编辑改进和编程辅助等方面的特点。 |
| 第四部分 | 附录 | 提供实用的参考资料,包括 vi、ex 和 Vim 编辑器的命令列表、设置选项、问题检查清单以及 vi 在 Unix 和互联网文化中的地位等。 |

4. 学习前的知识准备

在开始学习之前,需要具备以下基础:
- 已经阅读过《Learning the Unix Operating System》或其他 Unix 入门书籍。
- 掌握基本的 Unix 操作,如登录和注销、输入 Unix 命令、更改目录、列出目录中的文件、创建、复制和删除文件。
- 熟悉 grep(全局搜索程序)和通配符字符会更有帮助。

5. 内容呈现方式与约定
  • vi 命令讨论:通过键盘按钮图片标记特定键盘命令或相关命令的主要讨论内容,先简要介绍主要概念,再按任务导向进行细分,给出相应命令、描述及正确语法。
  • 语法约定
    • 实际输入的内容、命令名称、文件名和程序选项用 Courier 字体表示。
    • 变量用 Courier 斜体表示,括号表示变量可选,如vi [filename],其中filename需替换为实际文件名,括号不输入。
    • 在 Unix shell 提示符下输入命令的示例中,实际输入内容用 Courier 加粗字体表示,以区分系统响应。
    • 代码示例中,斜体表示注释,不输入;其他情况下,斜体用于引入特殊术语或强调重点内容。
    • 传统 Unix 文档约定中,printf(3)形式的引用指通过man命令访问的在线手册,如man 3 printf可查看printf()函数在手册第 3 节的条目。
  • 特殊按键表示:特殊按键用方框表示,如iWith a ESC;同时按下CTRL键和其他键时,文本中通常用方框表示(如CTRL - G),代码示例中用脱字符(^)前缀表示(如^G表示按住CTRL键并按下G键)。
  • 问题检查清单:在可能遇到问题的部分提供检查清单,方便用户在实际遇到问题时参考,所有问题检查清单汇总在附录 C 中。
6. 版本历史回顾
  • 第五版:更全面地讨论了 ex 编辑器命令,通过增加正则表达式语法、全局替换、.exrc文件、单词缩写、键盘映射和编辑脚本等主题的示例,澄清了 ex 和 vi 的复杂功能。部分示例来自《Unix World》杂志的文章。
  • 第六版:引入了四个免费的 vi 克隆版本(nvi、Vim、elvis 和 vile)的内容,将它们视为一个 “vi 编辑器家族” 进行介绍。该版本还进行了许多小的修正和补充,为各章添加了命令总结,新增了关于每个克隆版本的章节,介绍其历史、目标、独特功能和获取途径,并新增附录描述 vi 在 Unix 和互联网文化中的地位。
  • 第七版:保留了第六版的所有优点,鉴于 Vim 成为最受欢迎的 vi 克隆版本,大幅扩展了对 Vim 的介绍,并将其纳入书名。同时,为满足更多用户需求,保留并更新了关于 nvi、elvis 和 vile 的内容。
7. 学习路径规划

学习 vi 和 Vim 编辑器可按以下步骤进行:

graph LR A[学习前准备] --> B[基础 vi 学习] B --> C[高级 vi 学习] C --> D[Vim 深入学习] D --> E[其他克隆版本了解] E --> F[参考附录资料]
  • 学习前准备:确保掌握必要的 Unix 基础知识。
  • 基础 vi 学习:通过前两章学习简单的 vi 命令,如文件的打开、关闭和简单编辑,反复练习直到熟练掌握。
  • 高级 vi 学习:深入学习 vi 的高级功能,如快速移动、ex 编辑器命令和全局替换等,初步了解 vi 的强大功能,后续可再次复习巩固。
  • Vim 深入学习:详细了解 Vim 的各项特性,包括内置帮助、多窗口编辑、Vim 脚本和针对程序员的增强功能等。
  • 其他克隆版本了解:认识 nvi、elvis 和 vile 这三个 vi 克隆版本的特点和使用方法。
  • 参考附录资料:在学习和使用过程中,随时查阅附录中的命令列表、设置选项和问题检查清单等参考资料。

通过以上的介绍和学习路径规划,相信大家能够逐步掌握 vi 和 Vim 编辑器的使用,提高文本编辑效率。在学习过程中,遇到问题可随时参考问题检查清单和附录资料,也可通过 O’Reilly 提供的资源获取更多帮助。

深入探索 vi 与 Vim 编辑器:功能、使用与克隆版本

8. 基础与高级 vi 功能详解

在基础与高级 vi 的学习中,包含了众多实用功能,以下为你详细解析:
-文件操作
-打开文件:使用vi [filename]命令,若不指定文件名,可创建一个新的临时文件。例如,vi test.txt可打开或创建名为test.txt的文件。
-关闭文件:有多种方式,如ZZ命令可保存并退出文件;若不想保存修改,可使用:q!强制退出。
-简单编辑
-移动光标:可使用h(左移)、j(下移)、k(上移)、l(右移)进行基本的光标移动。例如,在编辑文本时,通过这些按键可精准定位到需要编辑的位置。
-插入文本:按下i键进入插入模式,可在光标前插入文本;按下a键可在光标后插入文本。
-连接两行:使用J命令可将当前行与下一行连接成一行。
-快速移动
-按屏幕移动Ctrl + F可向前翻一页,Ctrl + B可向后翻一页。
-按文本块移动{可向前移动一个段落,}可向后移动一个段落。
-按搜索移动:使用/后跟搜索内容,如/example可搜索文本中的 “example” 字符串,并将光标定位到第一个匹配处。
-按行号移动:输入:行号可直接跳转到指定行,如:10可跳转到第 10 行。
-高级编辑
-使用 ex 编辑器:在 vi 中输入:可进入 ex 模式,可使用如:w保存文件,:q退出文件等命令。
-全局替换:使用:%s/old/new/g可将文本中所有的 “old” 替换为 “new”;若要确认每个替换,可使用:%s/old/new/gc

9. Vim 的强大特性

Vim 作为最受欢迎的 vi 克隆版本,具有许多显著的改进和特性:
| 特性 | 说明 |
| ---- | ---- |
| 内置帮助 | 输入:help可打开 Vim 的内置帮助系统,方便用户查找命令和功能的详细说明。 |
| 启动和初始化选项 | 可通过.vimrc文件进行个性化配置,如设置语法高亮、行号显示等。例如,在.vimrc中添加syntax on可开启语法高亮,set number可显示行号。 |
| 新的移动命令 | 如gg可快速跳转到文件开头,G可跳转到文件末尾。 |
| 扩展正则表达式 | 支持更强大的模式匹配,可更精准地进行搜索和替换操作。 |
| 多窗口编辑 | 可使用:split:vsplit命令分别进行水平和垂直分割窗口,方便同时查看和编辑多个文件或同一文件的不同部分。 |
| Vim 脚本 | 可编写 Vim 脚本来实现自动化操作和个性化定制。例如,编写一个脚本实现自动保存功能。 |
| 图形化界面(gvim) | 在现代 GUI 环境中,gvim 提供了更友好的操作界面,可自定义滚动条、菜单和工具栏。 |
| 针对程序员的增强功能 | 包括代码折叠、智能缩进、语法高亮、标签堆叠和编译错误检查等,提高编程效率。 |

10. 其他 vi 克隆版本特点

除了 Vim,还有 nvi、elvis 和 vile 这三个流行的 vi 克隆版本,它们各自具有独特的特点:
-nvi(New vi)
-历史悠久:具有良好的兼容性和稳定性。
-多窗口编辑:支持多窗口操作,方便同时处理多个文件。
-扩展正则表达式:提供更强大的模式匹配能力。
-编程辅助:为程序员提供了一些实用的功能,如代码导航和语法检查。
-elvis
-易于定制:可通过配置文件进行个性化设置。
-多窗口编辑:支持多窗口编辑,提高编辑效率。
-扩展正则表达式:增强了搜索和替换的灵活性。
-编程辅助:提供了一些编程相关的功能,如代码自动补全。
-vile(vi Like Emacs)
-结合特点:融合了 vi 和 Emacs 的部分特点,具有独特的操作方式。
-多窗口编辑:支持多窗口操作,方便用户进行多任务处理。
-扩展正则表达式:支持复杂的模式匹配。
-编程辅助:为程序员提供了丰富的编程辅助功能,如代码调试和版本控制集成。

11. 附录参考资料的重要性

附录部分提供了丰富的参考资料,对学习和使用 vi 与 Vim 编辑器具有重要意义:
-命令列表:附录 A 列出了所有 vi 和 ex 命令,按功能分类,并提供了 ex 命令的字母顺序列表,方便用户查找和使用。
-设置选项:附录 B 列出了 vi 和四个克隆版本的set命令选项,用户可根据需求进行个性化设置。
-问题检查清单:附录 C 汇总了学习过程中可能遇到的问题及解决方法,当遇到问题时可快速查阅。
-vi 与互联网文化:附录 D 描述了 vi 在 Unix 和互联网文化中的地位,让用户了解其发展背景和应用场景。

12. 实际操作流程总结

在使用 vi 和 Vim 编辑器进行实际操作时,可遵循以下流程:

graph LR A[打开文件] --> B[编辑文件] B --> C{是否需要保存修改?} C -- 是 --> D[保存文件] C -- 否 --> E[不保存退出] D --> F{是否继续编辑其他文件?} F -- 是 --> A F -- 否 --> G[退出编辑器] E --> G
  • 打开文件:使用vi [filename]vim [filename]命令打开文件。
  • 编辑文件:根据需求使用各种编辑命令进行文本编辑,如移动光标、插入文本、删除文本等。
  • 保存修改:使用:w命令保存文件,若要保存并退出,可使用ZZ:wq命令。
  • 不保存退出:使用:q!命令强制退出,不保存对文件的修改。
  • 继续编辑其他文件:若需要编辑其他文件,可重复打开文件和编辑文件的步骤。
  • 退出编辑器:完成所有操作后,使用:qZZ等命令退出编辑器。

通过对 vi 和 Vim 编辑器的深入学习和实践,你将能够熟练掌握这两款强大的文本编辑工具,提高工作和学习效率。在学习过程中,不断探索和尝试各种功能,结合实际需求进行个性化配置,让编辑器更好地为你服务。

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

为什么DuckDB空间扩展正在重新定义本地GIS分析

为什么DuckDB空间扩展正在重新定义本地GIS分析 【免费下载链接】duckdb 项目地址: https://gitcode.com/gh_mirrors/duc/duckdb 在传统的地理信息系统分析中,开发者往往需要搭建复杂的PostgreSQLPostGIS环境,耗费大量时间和资源。DuckDB空间扩展…

作者头像 李华
网站建设 2026/4/18 8:08:18

Univer单元格渲染自定义:从基础到高级的完整实践指南

Univer单元格渲染自定义:从基础到高级的完整实践指南 【免费下载链接】univer Univer is a set of enterprise document and data collaboration solutions, including spreadsheets, documents, and slides. The highly extensible design allows developers to cu…

作者头像 李华
网站建设 2026/4/18 7:38:01

1811种语言+全链路合规:Apertus-8B如何重塑企业AI应用规则

1811种语言全链路合规:Apertus-8B如何重塑企业AI应用规则 【免费下载链接】Apertus-8B-Instruct-2509 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Apertus-8B-Instruct-2509 导语 瑞士国家AI研究所推出的Apertus-8B开源大模型,以181…

作者头像 李华
网站建设 2026/4/18 7:33:03

突破水下迷雾:3DGS技术实现清晰水下场景重建全解析

突破水下迷雾:3DGS技术实现清晰水下场景重建全解析 【免费下载链接】nerfstudio A collaboration friendly studio for NeRFs 项目地址: https://gitcode.com/GitHub_Trending/ne/nerfstudio 你是否曾经为水下拍摄的照片模糊不清、三维模型失真变形而烦恼&am…

作者头像 李华
网站建设 2026/4/18 7:58:03

键盘大师:Windows效率革命的终极指南

在追求极致效率的数字时代,键盘快捷键工具正掀起一场操作革命。告别繁琐的鼠标点击,掌握这些闪电般的快捷键技巧,让你的工作效率实现翻倍增长!🔥 【免费下载链接】MouseInc.Settings MouseInc设置界面 项目地址: htt…

作者头像 李华
网站建设 2026/4/12 20:21:51

Qwen3-235B-A22B-Thinking-2507-FP8:开源大模型推理能力新标杆

导语 【免费下载链接】Qwen3-235B-A22B-Thinking-2507-FP8 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-235B-A22B-Thinking-2507-FP8 阿里云最新发布的Qwen3-235B-A22B-Thinking-2507-FP8大模型,凭借其在推理能力、部署效率和行业适应性上的突…

作者头像 李华