Vi/Vim 编辑器新手入门教程
Vi/Vim 编辑器:从入门到不放弃
欢迎来到 Vi/Vim 的世界!这是一个强大、高效的文本编辑器,也许和你以前用过的任何编辑器都不同。
为什么要学 Vi/Vim?
想象一下,你第一次学开车,自动挡简单易上手,而手动挡需要练习离合与换挡,感觉很麻烦。但一旦你熟练掌握了手动挡,就能体验到更强的驾驶控制感和乐趣。
Vi/Vim 就是编辑器中的“手动挡”。初学时,它纯键盘、多模式的操作会让你感到困惑,甚至想要放弃。但只要你坚持下来,就会发现它在处理文本时无与伦比的效率,尤其是在服务器上进行开发和运维工作时,Vi/Vim 是必备技能。
本教程的目标不是让你成为专家,而是带你平稳地迈出第一步,掌握最核心、最常用的功能,让你能够自信地用它完成基本的文本编辑任务。
核心思想:理解“模式”
Vi/Vim 最与众不同之处在于它有多种工作“模式”(Mode)。忘掉鼠标,忘掉“点哪里就能输入”,首先必须理解两个最基本的模式:
-
命令模式 (Command Mode)
- 这是你进入 Vi/Vim 后默认所处的模式。
- 把它想象成电视遥控器:在这个模式下,你按下的每一个键都不是为了输入文字,而是向编辑器发送一个“命令”,比如“向下移动一行”、“删除一个字符”、“保存文件”等。
- 这是 Vi/Vim 的操作中枢。
-
插入模式 (Insert Mode)
- 把它想象成连接到电脑的键盘:在这个模式下,你按下的键就是你想要输入的文字内容,和普通记事本一样。
- 屏幕左下角通常会显示
-- INSERT --
或-- 插入 --
字样作为提示。
如何切换模式?
- 从 命令模式 进入 插入模式:按下
i
键 (i for insert)。 - 从 插入模式 返回 命令模式:按下
Esc
键。
最重要的技巧:无论你当前在做什么,感到困惑时,多按几下
Esc
键。这会确保你一定返回到了安全的“命令模式”。Esc
是你的“复位键”和“主基地”。
初次上手:创建和编辑文件
让我们开始第一次实践。
-
打开或创建文件
在你的终端(命令行)中输入以下命令:vi my_first_file.txt
- 如果
my_first_file.txt
文件不存在,Vi 会为你创建一个新文件。 - 如果文件已存在,Vi 会打开它。
- 如果
-
进入插入模式并输入内容
- 打开文件后,你正处于命令模式。
- 按下
i
键,注意观察屏幕左下角,应该出现了-- INSERT --
提示。 - 现在你可以像在记事本里一样,自由地输入几行文字了。比如:
你好,Vi 编辑器! 这是我的第一个文件。 学习新东西总是很有趣。
-
返回命令模式
- 内容输入完毕后,按下
Esc
键。 - 你会发现左下角的
-- INSERT --
提示消失了。你已经回到了命令模式,准备执行命令。
- 内容输入完毕后,按下
保存与退出:四个关键命令
所有这些命令都需要在命令模式下输入。以冒号 :
开头的命令,输入完毕后需要按 Enter
键执行。
- :w - 保存文件 (w for write)。
- :q - 退出编辑器 (q for quit)。如果文件已修改但未保存,此命令会失败并提示你。
- :wq - 保存并退出。这是最常用的命令之一。
- :q! - 强制退出,不保存任何修改。当你把文件改乱了,想放弃所有更改时,这个命令是你的“救生筏”。
快捷方式:在命令模式下,直接按两次大写的
Z
(即ZZ
),效果等同于:wq
,非常方便。
现在,用 :wq
命令保存并退出你刚刚创建的文件。
查看文件,但不编辑
有时候我们只想快速浏览文件内容,而不是编辑它。vi
当然可以做到,但有两个更方便的专用命令。
-
cat
命令
cat
会一次性将文件的所有内容输出到屏幕上。适合查看非常短小的文件。cat my_first_file.txt
你会看到刚刚输入的内容,然后立刻回到命令行提示符。
-
less
命令
当文件很长,一屏显示不完时,less
是更好的选择。它允许你上下翻页浏览。less my_first_file.txt
进入
less
界面后:- 使用 方向键 ↑ ↓ 或 j k 键逐行滚动。
- 使用 空格键 向下翻一页。
- 按
q
键退出浏览。
在文件中高效移动(命令模式)
重新用 vi my_first_file.txt
打开文件。确保你处于命令模式(如果不确定,按 Esc
)。以下是移动光标的常用命令,告别方向键,体验指尖如飞的感觉吧!
-
基本移动
h
- 左j
- 下k
- 上l
- 右
(这四个键在标准指法下就在你的右手指下,熟练后比移动手去按方向键快得多)
-
行内移动
^
- 移动到当前行的行首。$
- 移动到当前行的行尾。
-
词语间移动
w
- 移动到下一个单词的开头 (w for word)。b
- 移动到上一个单词的开头 (b for backward)。
-
文件级移动
gg
- 移动到文件的第一行。G
- 移动到文件的最后一行。5G
- 移动到文件的第 5 行 (数字可替换)。
小技巧:在命令模式下输入
:set nu
并回车,可以显示行号,方便使用nG
命令跳转。
基础编辑(命令模式)
编辑不仅仅是输入文字,还包括删除、修改、复制等。这些操作同样在命令模式下进行。
-
删除
x
- 删除光标所在的单个字符。dd
- 删除光标所在的整行。- 组合命令:Vi 的强大之处在于命令可以组合。
d
是删除命令,后面可以跟一个移动命令,表示“删除从当前位置到移动目标之间的所有内容”。dw
- 删除一个单词 (delete word)。d$
- 删除从光标到行尾的内容。
-
撤销与重做
u
- 撤销上一步操作 (u for undo)。你可以连续按u
来多次撤销。Ctrl + r
- 重做(取消撤销)。
更进一步
我们刚刚接触的只是 Vi/Vim 的冰山一角。当你熟练掌握了以上内容后,可以去探索以下更高级的功能,它们会让你的编辑效率再次飞跃:
- 复制 (
y
) 和粘贴 (p
) - 搜索 (
/
) 和替换 (:%s/旧内容/新内容/g
) - 可视模式 (
v
) 选择文本块 - 多文件操作与窗口分割
你可以在网上搜索“Vim 教程”或“Vim 命令备忘单(Cheat Sheet)”来找到海量的学习资源。
本章小结
命令 | 功能描述 |
---|---|
vi 文件名 |
打开或创建文件 |
Esc |
从插入模式返回命令模式(你的安全键) |
i |
进入插入模式 |
:w |
保存 |
:q |
退出 |
:wq 或 ZZ |
保存并退出 |
:q! |
不保存强制退出 |
h, j, k, l |
左, 下, 上, 右 移动光标 |
dd |
删除整行 |
x |
删除单个字符 |
u |
撤销 |
cat 文件名 |
在终端查看小文件 |
less 文件名 |
分页查看大文件 |
练习时间
现在,让我们把学到的知识串联起来。
- 用
vi
创建一个名为shopping_list.txt
的新文件。 - 进入插入模式,输入几项购物清单,比如“苹果、牛奶、面包”。
- 返回命令模式,使用
:wq
保存并退出。 - 使用
cat
命令查看你创建的清单。 - 再次用
vi
打开这个文件,在命令模式下,使用j
和k
键上下移动。 - 移动到“牛奶”那一行,用
dd
命令将其删除。 - 再用
u
命令撤销删除,看看“牛奶”是不是回来了。 - 移动到行尾,进入插入模式,添加新的物品“鸡蛋”。
- 最后,用
ZZ
快捷键保存并退出。
Vi 的学习曲线确实陡峭,但请保持耐心。每次使用命令行时,都强迫自己用 vi
来编辑文件,很快,这些命令就会成为你的肌肉记忆。祝你玩得开心!