在 Linux 中使用 Vim 和 Nano 编辑文本文件

CompTIABeginner
立即练习

介绍

在本实验中,你将学习使用 Linux 中两个核心文本编辑器所需的基本技能:vi/vimnano。它们是 Linux 环境中最常用的文本编辑器,各自具有独特的优势和适用场景。

你将从 vi 文本编辑器开始,这是一个在类 Unix 系统中功能强大且无处不在的工具。你将学习如何创建文件、使用插入模式(Insert Mode)输入文本、使用 :w:wq 等命令保存工作、使用移动键进行导航、搜索文本以及执行删除单词等基本编辑操作。

在实验的第二部分,你将探索 nano,这是一个对初学者更友好的编辑器。你将发现它直观的界面,学习基础编辑操作,并了解在不同任务中何时选择 nano 而非 vim。

完成本实验后,你将能够熟练使用这两个编辑器,并了解在 Linux 工作流的不同场景中哪种工具最为合适。

创建文件并在插入模式下输入文本

在这一步中,你将学习如何使用 vi 编辑器创建一个新的文本文件并输入文本。vi(及其现代版本 vim)是类 Unix 操作系统中功能强大且无处不在的文本编辑器。它在不同的模式下运行,最基础的两种是普通模式(Normal Mode,用于执行命令)和插入模式(Insert Mode,用于输入文本)。

首先,让我们确保你处于正确的工作目录中。本实验的所有工作都将在 ~/project 目录中进行。

  1. 打开终端。提示符应显示你位于 project 目录中。你可以使用 pwd(显示当前工作目录)命令验证完整路径。

    pwd
    

    你应该看到以下输出,确认你的位置:

    /home/labex/project
    

    终端显示当前目录

  2. 现在,启动 vi 编辑器并创建一个名为 test.txt 的新文件。运行此命令后,vi 将启动并接管你的终端窗口。

    vi test.txt
    

    你的终端将清空,你会看到一个左侧带有波浪号(~)的屏幕。这些符号表示空行。在屏幕底部,你会看到文件名 "test.txt" [New File]。你当前处于普通模式

  3. 要开始输入文本,你需要切换到插入模式。按下键盘上的 i 键。

    i
    

    注意屏幕底部会出现 -- INSERT --。这确认你已进入插入模式,现在可以直接在文件中输入文本。

  4. 输入以下句子:

    Now is the time for all good men to come to the aid of their country.

    vi 编辑器在插入模式下显示插入的文本

    此时,你输入的文本存在于编辑器的内存缓冲区中,尚未保存到磁盘。在下一步中,你将学习如何保存工作并退出编辑器。

使用 :w 和 :wq 保存并退出文件

在这一步中,你将学习如何保存更改并退出 vi 编辑器。这些操作是在普通模式下通过命令执行的。由于你目前处于上一步的插入模式,首先需要返回普通模式。

  1. 要从插入模式切换回普通模式,请按 Esc 键。

    Esc
    

    你会注意到屏幕底部的 -- INSERT -- 指示符消失了。这意味着你现在处于普通模式,此时的按键将被解释为命令而非文本输入。

  2. 现在,让我们保存文件。在普通模式下,以冒号(:)开头的命令会显示在屏幕底部的命令行中。要写入(保存)文件,请使用 :w 命令。

    输入以下序列并按 Enter

    :w
    

    按下 Enter 后,vi 会将缓冲区的内容写入 test.txt 文件。你会在底部看到类似这样的确认消息:

    "test.txt" [New] 1L, 79C written
    

    此消息确认文件 test.txt 已保存,包含 1 行和 79 个字符。

  3. 最后,要退出 vi,你可以使用 :q 命令(代表 "quit")。更常用的命令是 :wq,它将保存文件和退出合并为一个动作。由于你已经处于普通模式,输入以下内容并按 Enter

    :wq
    

    此命令会保存所有最终更改,然后关闭 vi 编辑器,返回到终端的 shell 提示符。你的终端现在应该显示熟悉的命令提示符,并且 test.txt 文件已保存在你的 ~/project 目录中。

使用 gg、h、j、k、l 和 / 进行导航和搜索文本

在这一步中,你将练习 vi 的一些强大导航和搜索命令。这些命令允许你在不使用鼠标的情况下高效地移动光标和查找文本。所有这些操作都在普通模式下执行。

  1. 首先,你需要再次打开 test.txt 文件。在 ~/project 目录的 shell 提示符下,输入以下命令:

    vi test.txt
    

    编辑器将打开并显示文件内容。光标通常位于第一行的开头。

  2. 为了确保光标位于文件的最开头,你可以使用 gg 命令。在普通模式下(如果不确定,请按 Esc),输入 gg

    gg
    

    光标将立即跳到第一行的第一个字符,在我们的文件中是 'N'。

  3. vi 中移动光标的主要方式是使用 hjkl 键。这是任何 vi 用户的核心技能。

    • h 将光标向左移动一个字符。
    • l 将光标向右移动一个字符。
    • j 将光标向下移动一行。
    • k 将光标向上移动一行。

    尝试按下这些键在句子周围移动光标。这种导航方法适用于任何终端环境。

  4. 现在,让我们搜索文本。/ 命令用于在文件中向前搜索。要搜索字母 'a' 的所有出现位置,请按照以下步骤操作: a. 确保你处于普通模式(按 Esc)。 b. 输入 / 后面跟着你要搜索的字符,在本例中是 a。然后按 Enter

    /a
    

    光标将跳到当前光标位置后找到的第一个 'a'。

    c. 要查找相同搜索词的下一个实例,只需按下 n 键(代表 "next")。

    n
    

    多次按下 n 以循环查看文件中的所有 'a'。

你现在已经练习了基础导航和搜索。在下一步中,你将学习如何删除文本。

使用 dw 删除单词并使用 :q 不保存退出

在这一步中,你将学习如何删除文本以及如何在不保存更改的情况下退出 vi。当你犯了错误并想恢复到文件上次保存的版本时,这是一项至关重要的技能。你应该仍然保持打开上一步中的 test.txt 文件。

  1. 首先,让我们将光标移动到想要删除的单词上。确保你处于普通模式(如果不确定,请按 Esc)。使用 hl 键移动光标,直到它位于单词 time 的第一个字母上。

  2. 光标位于 timet 上时,输入 dw 命令。这个命令代表 "delete word"(删除单词)。

    dw
    

    你会看到单词 time 及其后面的空格从屏幕上消失了。句子现在看起来不正确,这正好适合我们的下一个操作。

  3. 你现在已经修改了编辑器缓冲区中的文件。让我们假设这次删除是一个错误。你将退出并放弃更改,而不是保存这个错误的副本。执行此操作的命令是 :q!q 代表 "quit"(退出),! 表示强制执行,忽略任何未保存的更改。

    a. 确保你处于普通模式(按 Esc)。 b. 输入以下命令并按 Enter

    :q!
    

    此命令将立即退出 vi 编辑器并返回 shell 提示符。因为你使用了 :q!,单词 time 的删除操作没有保存到 test.txt 文件中。如果你再次打开该文件,单词 time 仍然会在那里。

启动交互式 vimtutor 进行进一步练习

在这一步中,你将发现 vimtutor,这是一个旨在通过实践方式教你 vi/vim 技能的交互式教程。本实验涵盖了最基础的内容,但 vimtutor 提供了一个全面的、自学进度的课程,强烈建议所有新用户使用。

  1. 你应该处于 ~/project 目录的 shell 提示符下。要启动教程,只需输入命令 vimtutor 并按 Enter

    vimtutor
    
  2. 此命令会使用一个特殊的教程文件打开 vi。文件本身包含了所有指令。你将阅读文本,然后直接在教程文件中练习所描述的命令。这是一种安全且有效的学习方式,因为你是在文件的临时副本上进行练习。

    教程分为多个课程,预计完成时间约为 25-30 分钟。你可以按照自己的节奏进行学习。

  3. 当你完成教程(或想随时离开)时,你可以像退出任何 vi 会话一样退出。由于你不需要保存对教程文件的任何更改,最好的退出方式是使用 :q! 命令。

    a. 按 Esc 确保你处于普通模式。 b. 输入 :q! 并按 Enter

    :q!
    

本实验的动手实践部分到此结束。通过完成这些步骤,你已经掌握了使用 vi 编辑器创建、编辑、保存和导航文件的基本技能。

nano 编辑器简介

在这一步中,你将学习如何使用 nano,这是一个非常适合初学者和快速编辑的用户友好型文本编辑器。与 vi 不同,nano 在屏幕底部显示有用的快捷键,并且没有不同的模式,这使得它对新用户来说更加直观。

  1. 首先,让我们使用 nano 创建一个新文件。在 ~/project 目录的 shell 提示符下,输入以下命令:

    nano welcome.txt
    

    nano 编辑器将打开一个空白文件。注意底部显示可用功能的有用菜单。

  2. vi 不同,你可以在 nano 中直接开始打字,无需切换模式。复制并粘贴以下文本:

    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
    
  3. 现在让我们保存文件。使用 nano 中的保存功能。你会看到一个询问文件名的提示。当前名称 welcome.txt 已经显示。按 Enter 确认并保存文件。

    你会看到底部有一条消息,指示文件已成功写入,并显示写入的行数。

  4. 要退出 nano,请使用退出功能。由于你已经保存了文件,nano 将立即退出并返回 shell 提示符。

比较 nano 和 vi/vim:何时使用各编辑器

在最后一步中,你将了解 nanovi/vim 之间的主要区别,并理解何时使用每种编辑器。让我们使用这两个编辑器创建一个对比文件来演示它们的差异。

  1. 首先,让我们使用 nano 创建一个对比文件:

    nano editor_comparison.txt
    
  2. 在 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
    
  3. 保存文件并退出 nano。

  4. 现在,让我们用 vi 打开同一个文件以添加更多内容:

    vi editor_comparison.txt
    
  5. 使用 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
    
  6. Esc 返回普通模式,然后使用 :wq 保存并退出。

  7. 让我们查看完成后的对比文件:

    cat editor_comparison.txt
    

    这将显示完整的对比内容,包括由两个编辑器添加的内容。

何时使用各编辑器:

  • 在以下情况下使用 nano:

    • 你是 Linux 文本编辑的新手
    • 进行快速、简单的编辑
    • 偶尔处理配置文件
    • 你更喜欢简单、直观的界面
  • 在以下情况下使用 vi/vim:

    • 你正在进行大量的编程或文本处理
    • 在远程服务器上工作(vi 总是可用的)
    • 你需要高级功能,如宏、插件或复杂的搜索/替换
    • 一旦掌握了命令,效率和速度对你很重要

这两个编辑器都是 Linux 用户工具箱中宝贵的工具,了解两者可以让你在不同情况下灵活应对。

总结

在本实验中,你学习了如何使用 Linux 中两个核心的文本编辑器:vi/vimnano

通过 vi/vim,你掌握了模态编辑的基本概念,学习了如何在普通模式和插入模式之间切换。你练习了创建文件、输入文本、使用 :w:wq 保存、使用移动键(hjkl)导航、使用 / 搜索、使用 dw 等命令编辑,以及使用 :q! 不保存退出。你还发现了用于持续学习的交互式 vimtutor

通过 nano,你体验了一种对初学者更友好的文本编辑方式。你学会了创建和编辑文件而无需担心模式问题,使用了底部显示快捷键的直观界面,并练习了保存和退出文件等基本操作。

关键要点:

  • nano 凭借其直观的界面和可见的快捷键,非常适合初学者和快速编辑。
  • vi/vim 对于复杂的编辑任务更强大且高效,但需要更多的学习投入。
  • 两个编辑器都是宝贵的工具——nano 胜在简单,vim 胜在功能强大且无处不在。
  • 了解何时使用每个编辑器将使你在不同的 Linux 场景中更加高效。

你现在已经打下了基础,可以根据具体需求选择合适的文本编辑器,并可以继续提升使用这两个工具的技能。