[#]: subject: "Vim vs Nano: What Should You Choose?" [#]: via: "https://itsfoss.com/vim-vs-nano/" [#]: author: "Pratham Patel https://itsfoss.com/author/pratham/" [#]: collector: "lujun9972" [#]: translator: "wxy" [#]: reviewer: "wxy" [#]: publisher: "wxy" [#]: url: "https://linux.cn/article-14328-1.html" Vim 与 nano:你应该选择哪个? ====== 我们需要利用文本编辑器来做笔记、写程序,或者编辑系统配置文件来完成一些事情。 不管你用来做什么,你的 Linux 发行版已经预装了文本编辑器。 你很可能会注意到一些 [最好的现代文本编辑器][1],如 Gedit、Geany、Kate 等,它们已经预装在你的 Linux 发行版中。然而,这些都是基于 GUI 的程序。 如果你想通过终端访问文本编辑器怎么办?你应该发现它也内置在你的 Linux 发行版中了。 ![][2] Vim 和 nano 是最流行的 [CLI 文本编辑器][3] 之二。 但是,是什么让它们如此受欢迎?你应该选择哪个作为你的文本编辑器?让我指出一下 Vim 和 nano 的区别,以帮助你决定。 ### 1、基于终端的编辑器介绍 nano 和 Vim 都提供了大部分的基本功能。虽然 nano 在大多数 Linux 发行版上是内置的,但你必须手动安装 Vim。 为了比较这两者,让我给你简单介绍一下这两者。 #### Vim ![][4] Vim 是 “Vi” 文本编辑器的改进版,开发于 1991 年。Vim 是 “Vi 改进版Vi IMproved” 的意思。 Vi 是一个基于终端的文本编辑器,最初于 1976 年为 Unix 操作系统而开发。Vim 是它的一个具有现代功能的增强版。 考虑到它的各种功能可以帮助编辑程序文件,它也被称为“程序员的文本编辑器”。虽然它提供了一些高级功能,但你也可以用来编辑纯文本文件。 #### GNU nano ![][5] GNU nano(我们在文章中称它为 “nano”)是一个简单的基于终端的文本编辑器,其灵感来自于 Pico —— 这个基于 Unix 的文本编辑器是华盛顿大学 1989 年开发的 Pine 电子邮件套件的一部分。 Pico 文本编辑器没有 GPL(许可证),这使得它很难被纳入 Linux 发行版。 因此,nano 被开发出来作为它的自由软件替代品。nano 编辑器最初被称为 “tip”,然后在 Richard Stallman 宣布它成为正式的 GNU 程序之前重新命名为 nano。 这个编辑器的亮点是它的易用性和极小的学习曲线。你不一定需要成为程序员才能使用 nano。 ### 2、功能差异 下面是 Vim 和 nano 的主要功能差异: #### Vim 的主要特点 * 多级撤销 * 语法高亮 * 命令行编辑 * 文件名补完 * 多窗口和缓冲区 * 折叠 * 会话 * 支持宏 #### nano 的主要特点 * 打开多个文件 * 逐行滚动 * 撤销/重做 * 语法着色 * 行号 请注意,一般来说,Vim 提供了更高级的功能。然而,它们都提供了编辑系统配置文件、编程和文本编辑等基本功能。 ### 3、用作文本编辑器 在 Vim 或 nano 中打开一个文件很简单,只要输入你想使用的编辑器的名字,然后再输入文件的路径。路径可以是文件的绝对路径,也可以是文件的相对路径。 ``` vim Documents/text.txt ``` ``` nano Documents/text.txt ``` 但是,除了用作文本编辑器访问或打开一个文件之外,还有很多功能,对吗? 如果你想快速比较一下,这里有一些基于我的使用情况的比较点: Vim: * 模式驱动的编辑器 * 在开始时有巨大的学习曲线 * 会话恢复 * 语法高亮/着色 * 提供高级功能 nano: * 易于使用(经常使用的功能及其组合键列在底部) * 不存在学习曲线 * 旨在进行快速编辑 nano 和 Vim 的主要区别在于,它们的目标受众非常不同。 #### Vim Vim 是一个模式驱动的编辑器。这意味着字母、数字和标点符号键在按下时都要做一件独特的事情,而不是在屏幕上打出一个字符。 这些模式包括: * 正常模式 * 视觉模式 * 插入模式 * 命令行命令 * 命令行编辑 默认情况下,当你启动 Vim 时,它以 **正常** 模式打开。每个键都有其独特的功能,不会立即开始输入所按下的字符。 不管什么模式,如果你愿意,你也可以 [把 Vim 配置成一个写作工具][6]。 要知道更多关于这些有趣的事情,你可以参考我们关于 [基本 Vim 命令][7] 以及 [Vim 技巧和窍门][8] 的文章。 ![当你启动 Vim(无参数)时的终端屏幕][9] 在正常模式下,按特定的键会移动你的光标。 例如,如果你按下 `l`(小写字母 L),它将把光标向右移动一个字符,按 `h` 键将把光标向左移动一个字符。 如果你想把光标向下移动一行,你就按 `j` 键,如果要把光标向上移动一行,你应该按 `k` 键。 在正常模式下 `l`、`k`、`j`、`h` 是导航键。虽然你可以用方向键来移动,但这样做更有效率。 这些是 Vim 中的基本导航键。 接下来最常用的键是 `w`、`b`、`e`: * 按 `w` 键可将光标移到下一个词。如果它已经在一个词的开头,它就会移动到下一个词的开头。 * 按 `b` 键,光标会移到左边的词的开头。 * 而 `e` 键,则将光标移到右边的词的末尾。 你甚至可以用这些键混合数字(作为前缀)。例如,按 `6w` 可以将光标向前(向右)移动六个词。 如果你想进入一个模式,你必须按类似的组合键: * `i` 为插入模式 * `CTRL+C` 回到正常模式 * `:wq` 写入文件并关闭窗口。 最后,我们已经 [列出了退出 Vim 的多种方法][10],如果你想了解一下的话。 这只是冰山一角。要学习更多关于 Vim 的知识,你可以使用`vimtutor` 命令,它可以给你提供大多数基本命令的信息,如删除、编辑、保存文件等。 ![][11] #### GNU nano nano 有一个基本的交互界面,在窗口的底部给你提供关键信息。 要想有个初步的了解,你可以参考我们的 [nano 编辑器指南][12]。 ![Terminal screen when you launch nano \(without arguments\)] [13] 你不需要参考手册页或任何文档来执行基本操作。这就是为什么与 Vim 相比,nano 被认为是用户友好的。 尽管如此,nano 中使用的一些术语仍然是“旧术语”,一个例子是 “写出Write Out”、“在哪里Where Is”短语,而不是分别用“保存Save”和“查找Find”。 但是,这并不是什么大问题。 虽然很容易习惯,但它与使用记事本或 Gedit(GUI 程序)并不完全相同。 例如,在大多数现代编辑器中,执行剪切操作的组合键通常是 `Ctrl + X`,但在 nano 中,它是 `Ctrl + K`。 符号 `^` 是用来表示将 `Ctrl` 键作为修饰键使用,并与旁边的键组合使用。 你还可以找到像 `Ctrl + F`(将光标向前移动)、`Ctrl + B`(将光标向后移动)这样的组合键。一些快捷键包括: * `Ctrl + X` 退出 * `Ctrl + O` 写入(或保存为) * `Alt + U` 撤销上一个动作 * `Ctrl + ←` 向后退一个字 * `Ctrl + →` 向前进一个字 你可以看看 [GNU nano 的官方速查表][14] 来学习更多的快捷键。 总的来说,nano 是一个更适合初学者的编辑器,当你只想偶尔编辑一个文件时,它可以简单地让你完成。 ### 4、学习曲线 考虑到上面的所有信息,你一定已经意识到 Vim 与你所习惯的传统文本编辑器不同。 这是真的,这就是为什么 Vim 在学习的初始阶段会显得很艰难。 然而,对于高级用户来说,使用宏、自动补完等高级能力很重要,可以节省时间。 因此,如果你是一个程序员,或者碰巧经常编辑许多文件,Vim 的学习曲线可能是富有成效的。 另一方面,nano 提供了极小的学习曲线,而且感觉比基于图形用户界面的文本编辑器如 Gedit 或 Notepad 更让你熟悉。 ### 哪个是最适合你的? Vim 和 nano 都是合格的基于终端的文本编辑器。但是,当涉及到你如何与上述编辑器互动和使用时,它们有很大的不同。 Vim 很灵活,可以适应各种工作流程,前提是你已经习惯了它的工作方式。 相比之下,nano 工作起来很简单,可以帮助你编辑任何你想要的东西。 如果你还不确定,我建议先开始使用 nano。而且,如果你认为你需要更快地完成工作,并且想要更多的功能,那么就换成 Vim。 ### 常见的问题 继续,让我来谈谈几个问题,这将有助于你获得一个良好的开端。 **Vim 比 nano 好吗?** 从技术上讲,是的。但是,如果你不需要它提供的所有功能,使用起来可能会感到力不从心。 **程序员是否使用 Vim?** 系统管理员和程序员喜欢 Vim 的高级功能。所以,是的,他们倾向于使用它。 **nano 是否更受欢迎?** 可以说是的。nano 是一个基于终端的编辑器,被大多数用户使用。此外,它还内置在大多数 Linux 发行版中。 因此,它在用户中普遍受欢迎,而 Vim 仍然是一个为特定人群服务的编辑器。 -------------------------------------------------------------------------------- via: https://itsfoss.com/vim-vs-nano/ 作者:[Pratham Patel][a] 选题:[lujun9972][b] 译者:[wxy](https://github.com/wxy) 校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://itsfoss.com/author/pratham/ [b]: https://github.com/lujun9972 [1]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ [2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/01/vim-vs-nano.png?resize=800%2C450&ssl=1 [3]: https://itsfoss.com/command-line-text-editors-linux/ [4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/07/vim-screenshot.jpg?resize=800%2C520&ssl=1 [5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/07/nano-editor-screenshot.jpg?resize=800%2C524&ssl=1 [6]: https://news.itsfoss.com/configuring-vim-writing/ [7]: https://linuxhandbook.com/basic-vim-commands/ [8]: https://itsfoss.com/pro-vim-tips/ [9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/01/01_vim_interface.webp?resize=800%2C430&ssl=1 [10]: https://itsfoss.com/how-to-exit-vim/ [11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/03/vimtutor.png?resize=777%2C519&ssl=1 [12]: https://itsfoss.com/nano-editor-guide/ [13]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/01/03_nano_interface.webp?resize=800%2C430&ssl=1 [14]: https://www.nano-editor.org/dist/latest/cheatsheet.html