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

CompTIABeginner
立即练习

简介

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

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

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

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

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

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

首先,确保你处于正确的工作目录中。本实验的所有工作都将在 ~/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。当你犯错并希望恢复到文件的上一个保存版本时,这是一项至关重要的技能。你应该仍然保持 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 中,"Save" 被称为 Write Out。按 Ctrl+O 开始 Write Out。你会看到一个提示,要求输入文件名。当前名称 welcome.txt 已经显示,所以按 Enter 确认并保存文件。

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

  4. 要退出 nano,请按 Ctrl+X。由于你已经保存了文件,nano 将立即退出并返回到 shell 提示符。如果你在保存前按 Ctrl+Xnano 会询问是否保存更改;按 Y 然后按 Enter 即可保存并退出。

比较 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 场景中更加高效

你现在已经具备了根据特定需求选择合适文本编辑器的基础,并可以继续使用这两种工具发展你的技能。