介绍
在本实验中,你将学习使用 Linux 中两个核心文本编辑器所需的基本技能:vi/vim 和 nano。它们是 Linux 环境中最常用的文本编辑器,各自具有独特的优势和适用场景。
你将从 vi 文本编辑器开始,这是一个在类 Unix 系统中功能强大且无处不在的工具。你将学习如何创建文件、使用插入模式(Insert Mode)输入文本、使用 :w 和 :wq 等命令保存工作、使用移动键进行导航、搜索文本以及执行删除单词等基本编辑操作。
在实验的第二部分,你将探索 nano,这是一个对初学者更友好的编辑器。你将发现它直观的界面,学习基础编辑操作,并了解在不同任务中何时选择 nano 而非 vim。
完成本实验后,你将能够熟练使用这两个编辑器,并了解在 Linux 工作流的不同场景中哪种工具最为合适。
创建文件并在插入模式下输入文本
在这一步中,你将学习如何使用 vi 编辑器创建一个新的文本文件并输入文本。vi(及其现代版本 vim)是类 Unix 操作系统中功能强大且无处不在的文本编辑器。它在不同的模式下运行,最基础的两种是普通模式(Normal Mode,用于执行命令)和插入模式(Insert Mode,用于输入文本)。
首先,让我们确保你处于正确的工作目录中。本实验的所有工作都将在 ~/project 目录中进行。
打开终端。提示符应显示你位于
project目录中。你可以使用pwd(显示当前工作目录)命令验证完整路径。pwd你应该看到以下输出,确认你的位置:
/home/labex/project
现在,启动
vi编辑器并创建一个名为test.txt的新文件。运行此命令后,vi将启动并接管你的终端窗口。vi test.txt你的终端将清空,你会看到一个左侧带有波浪号(
~)的屏幕。这些符号表示空行。在屏幕底部,你会看到文件名"test.txt" [New File]。你当前处于普通模式。要开始输入文本,你需要切换到插入模式。按下键盘上的
i键。i注意屏幕底部会出现
-- INSERT --。这确认你已进入插入模式,现在可以直接在文件中输入文本。输入以下句子:
Now is the time for all good men to come to the aid of their country.
此时,你输入的文本存在于编辑器的内存缓冲区中,尚未保存到磁盘。在下一步中,你将学习如何保存工作并退出编辑器。
使用 :w 和 :wq 保存并退出文件
在这一步中,你将学习如何保存更改并退出 vi 编辑器。这些操作是在普通模式下通过命令执行的。由于你目前处于上一步的插入模式,首先需要返回普通模式。
要从插入模式切换回普通模式,请按
Esc键。Esc你会注意到屏幕底部的
-- INSERT --指示符消失了。这意味着你现在处于普通模式,此时的按键将被解释为命令而非文本输入。现在,让我们保存文件。在普通模式下,以冒号(
:)开头的命令会显示在屏幕底部的命令行中。要写入(保存)文件,请使用:w命令。输入以下序列并按
Enter::w按下
Enter后,vi会将缓冲区的内容写入test.txt文件。你会在底部看到类似这样的确认消息:"test.txt" [New] 1L, 79C written此消息确认文件
test.txt已保存,包含 1 行和 79 个字符。最后,要退出
vi,你可以使用:q命令(代表 "quit")。更常用的命令是:wq,它将保存文件和退出合并为一个动作。由于你已经处于普通模式,输入以下内容并按Enter::wq此命令会保存所有最终更改,然后关闭
vi编辑器,返回到终端的 shell 提示符。你的终端现在应该显示熟悉的命令提示符,并且test.txt文件已保存在你的~/project目录中。
使用 gg、h、j、k、l 和 / 进行导航和搜索文本
在这一步中,你将练习 vi 的一些强大导航和搜索命令。这些命令允许你在不使用鼠标的情况下高效地移动光标和查找文本。所有这些操作都在普通模式下执行。
首先,你需要再次打开
test.txt文件。在~/project目录的 shell 提示符下,输入以下命令:vi test.txt编辑器将打开并显示文件内容。光标通常位于第一行的开头。
为了确保光标位于文件的最开头,你可以使用
gg命令。在普通模式下(如果不确定,请按Esc),输入gg。gg光标将立即跳到第一行的第一个字符,在我们的文件中是 'N'。
在
vi中移动光标的主要方式是使用h、j、k和l键。这是任何vi用户的核心技能。h将光标向左移动一个字符。l将光标向右移动一个字符。j将光标向下移动一行。k将光标向上移动一行。
尝试按下这些键在句子周围移动光标。这种导航方法适用于任何终端环境。
现在,让我们搜索文本。
/命令用于在文件中向前搜索。要搜索字母 'a' 的所有出现位置,请按照以下步骤操作: a. 确保你处于普通模式(按Esc)。 b. 输入/后面跟着你要搜索的字符,在本例中是a。然后按Enter。/a光标将跳到当前光标位置后找到的第一个 'a'。
c. 要查找相同搜索词的下一个实例,只需按下
n键(代表 "next")。n多次按下
n以循环查看文件中的所有 'a'。
你现在已经练习了基础导航和搜索。在下一步中,你将学习如何删除文本。
使用 dw 删除单词并使用 :q 不保存退出
在这一步中,你将学习如何删除文本以及如何在不保存更改的情况下退出 vi。当你犯了错误并想恢复到文件上次保存的版本时,这是一项至关重要的技能。你应该仍然保持打开上一步中的 test.txt 文件。
首先,让我们将光标移动到想要删除的单词上。确保你处于普通模式(如果不确定,请按
Esc)。使用h和l键移动光标,直到它位于单词time的第一个字母上。光标位于
time的t上时,输入dw命令。这个命令代表 "delete word"(删除单词)。dw你会看到单词
time及其后面的空格从屏幕上消失了。句子现在看起来不正确,这正好适合我们的下一个操作。你现在已经修改了编辑器缓冲区中的文件。让我们假设这次删除是一个错误。你将退出并放弃更改,而不是保存这个错误的副本。执行此操作的命令是
:q!。q代表 "quit"(退出),!表示强制执行,忽略任何未保存的更改。a. 确保你处于普通模式(按
Esc)。 b. 输入以下命令并按Enter::q!此命令将立即退出
vi编辑器并返回 shell 提示符。因为你使用了:q!,单词time的删除操作没有保存到test.txt文件中。如果你再次打开该文件,单词time仍然会在那里。
启动交互式 vimtutor 进行进一步练习
在这一步中,你将发现 vimtutor,这是一个旨在通过实践方式教你 vi/vim 技能的交互式教程。本实验涵盖了最基础的内容,但 vimtutor 提供了一个全面的、自学进度的课程,强烈建议所有新用户使用。
你应该处于
~/project目录的 shell 提示符下。要启动教程,只需输入命令vimtutor并按Enter。vimtutor此命令会使用一个特殊的教程文件打开
vi。文件本身包含了所有指令。你将阅读文本,然后直接在教程文件中练习所描述的命令。这是一种安全且有效的学习方式,因为你是在文件的临时副本上进行练习。教程分为多个课程,预计完成时间约为 25-30 分钟。你可以按照自己的节奏进行学习。
当你完成教程(或想随时离开)时,你可以像退出任何
vi会话一样退出。由于你不需要保存对教程文件的任何更改,最好的退出方式是使用:q!命令。a. 按
Esc确保你处于普通模式。 b. 输入:q!并按Enter。:q!
本实验的动手实践部分到此结束。通过完成这些步骤,你已经掌握了使用 vi 编辑器创建、编辑、保存和导航文件的基本技能。
nano 编辑器简介
在这一步中,你将学习如何使用 nano,这是一个非常适合初学者和快速编辑的用户友好型文本编辑器。与 vi 不同,nano 在屏幕底部显示有用的快捷键,并且没有不同的模式,这使得它对新用户来说更加直观。
首先,让我们使用
nano创建一个新文件。在~/project目录的 shell 提示符下,输入以下命令:nano welcome.txtnano编辑器将打开一个空白文件。注意底部显示可用功能的有用菜单。与
vi不同,你可以在nano中直接开始打字,无需切换模式。复制并粘贴以下文本:
Welcome to Linux Text Editing! This file was created using the nano editor. Nano is beginner-friendly and intuitive. Key advantages of nano: - No modes to switch between - Shortcuts displayed at bottom - Easy to learn and use - Perfect for quick edits现在让我们保存文件。使用 nano 中的保存功能。你会看到一个询问文件名的提示。当前名称
welcome.txt已经显示。按Enter确认并保存文件。你会看到底部有一条消息,指示文件已成功写入,并显示写入的行数。
要退出 nano,请使用退出功能。由于你已经保存了文件,nano 将立即退出并返回 shell 提示符。
比较 nano 和 vi/vim:何时使用各编辑器
在最后一步中,你将了解 nano 和 vi/vim 之间的主要区别,并理解何时使用每种编辑器。让我们使用这两个编辑器创建一个对比文件来演示它们的差异。
首先,让我们使用
nano创建一个对比文件:nano editor_comparison.txt在 nano 中输入以下内容:
TEXT EDITOR COMPARISON: nano vs vi/vim NANO EDITOR: Pros: - Beginner-friendly interface - No modes to learn - Shortcuts displayed on screen - Immediate text input - Good for quick edits and simple tasks Cons: - Limited advanced features - Less efficient for complex editing - Not available on all systems保存文件并退出 nano。
现在,让我们用
vi打开同一个文件以添加更多内容:vi editor_comparison.txt使用
G(大写 G)导航到文件末尾,然后按o开启新行并进入插入模式。添加以下内容:VI/VIM EDITOR: Pros: - Extremely powerful and feature-rich - Available on virtually all Unix/Linux systems - Highly efficient once mastered - Excellent for programming and complex editing - Extensive customization options Cons: - Steep learning curve - Modal interface can be confusing for beginners - Requires memorizing many commands按
Esc返回普通模式,然后使用:wq保存并退出。让我们查看完成后的对比文件:
cat editor_comparison.txt这将显示完整的对比内容,包括由两个编辑器添加的内容。
何时使用各编辑器:
在以下情况下使用 nano:
- 你是 Linux 文本编辑的新手
- 进行快速、简单的编辑
- 偶尔处理配置文件
- 你更喜欢简单、直观的界面
在以下情况下使用 vi/vim:
- 你正在进行大量的编程或文本处理
- 在远程服务器上工作(vi 总是可用的)
- 你需要高级功能,如宏、插件或复杂的搜索/替换
- 一旦掌握了命令,效率和速度对你很重要
这两个编辑器都是 Linux 用户工具箱中宝贵的工具,了解两者可以让你在不同情况下灵活应对。
总结
在本实验中,你学习了如何使用 Linux 中两个核心的文本编辑器:vi/vim 和 nano。
通过 vi/vim,你掌握了模态编辑的基本概念,学习了如何在普通模式和插入模式之间切换。你练习了创建文件、输入文本、使用 :w 和 :wq 保存、使用移动键(h、j、k、l)导航、使用 / 搜索、使用 dw 等命令编辑,以及使用 :q! 不保存退出。你还发现了用于持续学习的交互式 vimtutor。
通过 nano,你体验了一种对初学者更友好的文本编辑方式。你学会了创建和编辑文件而无需担心模式问题,使用了底部显示快捷键的直观界面,并练习了保存和退出文件等基本操作。
关键要点:
nano凭借其直观的界面和可见的快捷键,非常适合初学者和快速编辑。vi/vim对于复杂的编辑任务更强大且高效,但需要更多的学习投入。- 两个编辑器都是宝贵的工具——nano 胜在简单,vim 胜在功能强大且无处不在。
- 了解何时使用每个编辑器将使你在不同的 Linux 场景中更加高效。
你现在已经打下了基础,可以根据具体需求选择合适的文本编辑器,并可以继续提升使用这两个工具的技能。



