对Linux系统的整体命令行操作教程,请参考我撰写的另一篇博文:Linux命令行教程
Vim 是一个在终端窗口中运行的文本编辑器。它不需要图形界面,直接通过键盘操作就能高效编辑文本文件。大多数 Linux 发行版已经预装了 Vim,如果没有,可以通过系统的包管理器简单安装(例如 sudo apt install vim 或 sudo yum install vim)。
打开终端,输入 vim 后面跟上文件名。如果文件已存在,Vim 会打开它;如果文件不存在,Vim 会在你第一次保存时创建它。
vim hello.txt执行后,就进入了 Vim 的编辑界面。
在许多 Linux 系统中,输入 vi 也会打开 Vim:
vi hello.txt这是因为 Vim 是 “Vi Improved” 的缩写,它完全兼容传统的 Vi 编辑器。系统通常将 vi 设置为一个指向 Vim 的链接或别名,所以你使用 vi filename 和使用 vim filename 的效果是一样的,都能进入我们教程中描述的 Vim 环境。
不过,有两点值得留意:
功能可能略有不同 有些系统为了精简,当通过 vi 启动时,Vim 可能会运行在“兼容模式”下,部分进阶功能(如多级撤销、语法高亮)会受到限制。 如果你希望确保使用的是 Vim 的完整功能,直接输入 vim 是最稳妥的做法。
极少数最小化环境 在某些极度精简的 Linux 环境(如容器内部或嵌入式系统)中,vi 可能指向的是原版 Vi 或 BusyBox 提供的简化版,功能比 Vim 少很多。但这种情况在常规桌面和服务器系统中很少见。
Vim 存在不同的操作模式,这是它与普通记事本最根本的区别。刚开始使用时,理解模式是正确操作的关键。
打开 Vim 后首先进入的就是普通模式。在这个模式下,你不能直接输入文字。键盘上的按键会被视为命令,用来移动光标、删除内容、复制粘贴等。无论在哪种模式下,按 Esc 键都会回到普通模式。
可以注意的是,Linux普通模式下光标在字符上(可视化的文本编辑器,光标一般在字符之间),所以delete键删除的就是当前字符,插入也是插入到这个位置(把后面的字符推后)。
只有在这个模式下,你才能像其他编辑器一样自由地输入和修改文字。从普通模式进入插入模式有多种方法,最常用的是按 i 键。
这个模式用于执行保存、退出、搜索、跳转行号等操作。在普通模式下按 : 键,屏幕底部会出现一个冒号,等待你输入命令,按回车键执行。搜索时按 / 也会进入类似的模式。
模式之间的切换关系:
i → 插入模式Esc → 普通模式: → 命令行模式Esc 手动返回在普通模式下,可以用方向键移动光标,但 Vim 推荐使用以下按键,手可以不离开主键盘区。
hjkl其他常用的移动操作(均在普通模式下):
wb0$ggG:数字:10 跳到第 10 行。从普通模式使用以下按键进入插入模式,记住完成输入后一定要按 Esc 回到普通模式。
iIaAoO这里指的是普通模式下执行的删除操作。 在插入模式中直接用delete/backspace删,效果也是一样的。
xXdwddd$uCtrl + ryyyiwpP使用 dd 删除一行后,也可以用 p 粘贴出来,这相当于“剪切”。
(这里可以注意的是,有些终端程序本身提供了用 Ctrl + C / Ctrl + V 或者鼠标右键来进行复制粘贴的功能,但是vim本身是没有的)
这些操作在命令行模式下完成。先按 Esc 确保回到普通模式,然后按 : 键,屏幕底部出现冒号,再输入以下命令并回车。 (冒号只输一次就行,不是让你输两次冒号的意思)
:w:q:wq:q!在普通模式下按 / 键,屏幕底部会出现 /,然后输入要查找的关键词,回车确认。光标会跳到第一个匹配的结果。
nN例如搜索 “hello”:按 /hello 然后回车。
vim myfile.txt 打开或新建文件。i 进入插入模式。Esc 回到普通模式。h、j、k、l 移动光标检查内容。dd。如果反悔,按 u 撤销。: 进入命令行模式,输入 wq 保存并退出。-- INSERT --,普通模式下一般显示文件名或空白,命令行模式底部会出现 : 或 / 符号。Esc 可以回到普通模式,然后重新操作。:q! 强制退出,不保存任何修改。i | ||
Esc | ||
:w | ||
:q | ||
:wq:x | ||
:q! | ||
h | ||
j | ||
k | ||
l | ||
x | ||
dd | ||
yy | ||
p | ||
u | ||
Ctrl+r | ||
/关键词 | n 查看下一个匹配项 |
本教程只涵盖了最基础的操作,帮助你用 Vim 完成简单的文件编辑。Vim 自带一个非常实用的交互式教程,在终端中输入以下命令即可启动:
vimtutor建议跟着教程动手操作一遍,能让你更快地熟悉这些操作并形成肌肉记忆。