Vim 是一款可配置的文本编辑器,其名称意为 Vi Improved。它保留了与原始 vi 编辑器相关的模态编辑模型,并增加了多级撤销、语法支持、脚本和丰富的帮助系统等功能。
高级文本操作 · 第 3 课
Vim(Vi Improved)
了解 Vim 是什么、它与 vi 的关系,以及如何打开文件、帮助和引导式练习。
Vim 与 vi 的关系
vi 既指一款历史悠久的编辑器,也指一种常见的命令界面。在某个 Linux 系统上,vi 可能会以偏兼容模式启动 Vim;在另一个系统上,它可能启动不同的 vi 实现。不要假设每个 vi 命令都提供全部 Vim 功能。
检查当前 shell 的解析结果:
$ command -v vim
/usr/bin/vim
$ command -v vi
/usr/bin/vi
仅凭解析出的路径,无法判断 vi 和 vim 是否是同一实现。type -a vi vim 和编辑器的版本输出可以提供更多细节。
Vim 这个名称是什么意思?
哪个命令会检查 Bash 当前能否解析名称 vim?
打开 Vim 和文件
使用未命名缓冲区启动 Vim:
$ vim
传入路径名以编辑该文件:
$ vim filename.txt
如果 filename.txt 已存在且可读,Vim 会把内容加载到缓冲区中。如果路径不存在,Vim 会打开一个与该名称关联的新缓冲区;只有成功写入缓冲区时才会创建文件。
Vim 不会绕过文件系统权限。能够打开文件并不保证当前账户可以把更改保存到该路径。
当 vim draft.txt 指定的路径还不存在时,通常会发生什么?
使用内置学习资源
如果 Vim 安装包含 vimtutor,可从 shell 运行它来开始交互式练习课程:
$ vimtutor
在 Vim 中,按 Esc 进入普通模式,输入 :help 并按 Enter 打开帮助系统。命令后还可以跟特定主题:
:help user-manual
:help :write
帮助标签非常精确,所以标点符号可能很重要。在帮助链接上使用 Ctrl+] 可跟随链接,使用 Ctrl+T 返回。
安装了 Vim 引导教程时,哪个 shell 命令会启动它?
使用可丢弃文件练习
请从自己拥有的目录中的文件开始:
$ printf 'alpha\nbeta\n' > vim-practice.txt
$ vim vim-practice.txt
后续课程会介绍搜索、导航、插入、编辑和保存。在你学会安全离开之前,请记住 Esc 会返回普通模式,而输入 :q! 后按 Enter 会放弃当前窗口中未保存的更改。只有确实想丢弃这些更改时才使用该命令。
在可丢弃的练习文件中,哪个 Vim 命令会退出当前窗口并丢弃未保存的更改?
要练习使用 Vim 打开、编辑和保存文件,可以尝试以下动手实验:
- 在 Linux 中使用 Vim 和 Nano 编辑文本文件 - 在真实 Linux 环境中使用 Vim 和 Nano 练习创建文件、编辑文本、保存文件和导航。
课程已完成
你已完成 Vim(Vi Improved)
现在,你可以识别 Vim、打开缓冲区并找到安全的学习资源。
说明 Vim 与 vi 的关系,同时不假定具体实现。
检查
vim命令是否可用。打开已有文件或新的具名缓冲区。
启动
vimtutor或打开 Vim 内置帮助。只在确实需要时放弃未保存的练习更改。