终端文本编辑器

在 Linux 终端中,如果你需要编辑配置文件或记录备忘信息,不能像在图形界面中那样双击鼠标用记事本打开。你需要使用运行在终端里的文本编辑器。

最常用的命令行编辑器是 nano,它设计简单、直观,非常适合新手上手。另一个广泛使用的是 vim,它功能极度强大,但有着较为陡峭的学习曲线。

使用 Nano 编辑器

要新建或打开一个文件,只需在 nano 命令后跟着你想要编辑的文件名:

crow@opsbox:~$ nano notes_crow.txt

执行后,终端屏幕会进入 Nano 的全屏编辑界面。你可以直接在里面敲入文本。

在编辑器的最底部,会显示两行快捷键指南。其中的插入符号 ^ 代表键盘上的 Ctrl 键,而 M- 代表键盘上的 Alt 键(或在某些终端中代表 Esc 键):

  • 保存文件(写出内容):按下 Ctrl + O,编辑器会提示你确认保存的文件名,直接按回车确认即可。
  • 退出编辑器:保存后,按下 Ctrl + X 即可退出并回到 Shell 终端命令行。
  • 搜索文本:在编辑器中按下 Ctrl + W,终端底部会显示 Search: 提示,输入你想检索的关键字并回车,光标便会跳转至对应的首个匹配项。

Nano 文本编辑器的界面布局与底部快捷键栏 图:Legiøń · GPL · Wikimedia Commons

你可以通过 cat 命令查看刚才保存的修改:

crow@opsbox:~$ cat notes_crow.txt
这是乌鸦的备忘录。

注意

此时系统会在当前目录下生成一个名为 notes_crow.txt 的文件。要向文件中写入内容,虽然我们可以利用前面模块学到的输出重定向写入简单内容,但在本章以及后续模块中,我们将逐步学会如何使用真正的终端文本编辑器。对于更高级的文本编辑操作(如 nano/vim),本章会进行详细讲解。

认识 Vim 编辑器

vim 是早期 vi 编辑器的升级版。它是一个模态编辑器,会将键盘输入区分为“普通模式”和“输入模式”。

Vim 的设计高度契合 Unix 的哲学:即只专注于文本编辑本身,而将复杂的搜索和过滤功能交给外部的 grepsed 等小型程序,并通过接口进行调用,从而保证了编辑器的小巧与高效。

Vim 的核心工作模式

初学者最容易感到困惑的是:为什么在 Vim 中敲字母无法输入文本?这是因为 Vim 默认处于普通模式。Vim 最基础的几种模式如下:

  1. 普通模式:当你打开 Vim 时的默认状态。在这个模式下,键盘按键不代表输入的字符,而是代表快捷命令(如移动光标、复制、删除整行)。
  2. 插入模式:真正的文本输入状态。在普通模式下按下小写字母 i 即可进入该模式。此时终端左下角会显示 -- INSERT --。在此模式下你可以正常打字。输入完成后,按下 Esc 键即可返回普通模式。
  3. 命令行模式:在普通模式下输入冒号 : 即可激活。此时光标会落到屏幕最底部,等待你输入指令。
    • :w:保存当前修改。
    • :q:关闭 Vim 退出。
    • :wq:保存并退出。
    • :q!:放弃修改,强制退出。
  4. 可视模式:在普通模式下按下 v 键进入,用于高亮选中字符并进行批量复制或删除。

Vim/GVim 编辑器:语法高亮的源码与状态栏 图:Vim · CC BY-SA 3.0 · Wikimedia Commons

要熟练掌握 Vim,建议在终端中执行内置的交互式教程:

crow@opsbox:~$ vimtutor

接下来,我们通过一个内置小游戏练习来熟悉 Vim 的基本操作。

用 vim 小游戏练按键

模拟实验

在这个 vim 小游戏里练最常用的按键:用 h/j/k/l 或方向键移动,i 进入插入模式打字,Esc 回到普通模式,:wq 保存退出。跟着关卡过一遍,建立肌肉记忆。

点击这里启动: