编辑器

本节贡献者

姚家园(作者)、 田冬冬(审稿)

最近更新日期

2021-03-01

预计花费时间

30 分钟


不管是编辑文本文件、脚本还是程序源码,都需使用一个叫做编辑器的程序。Windows 自带的编辑器是记事本(Notepad),macOS 自带的编辑器是 TextEdit,Linux 自带的编辑器一般是 Gedit。日常科研中,不建议使用这些编辑器,而建议学习并掌握其他具有更强大、更高效功能的编辑器。

学习编辑器

日常科研中,我们大部分时间都花在编写代码和文本文件上。因此,花点时间掌握某个适合自己的编辑器是非常必要的,也是十分值得的。学习和掌握一个新编辑器的步骤通常如下:

  • 阅读教程:例如,官方文档、本章教程等

  • 坚持使用新编辑器来完成所有的编辑工作:刚开始可能会让工作效率降低

  • 随时查阅:如果新编辑器的某个操作看起来像是有更方便的实现方法,一般情况下真的会有;如果觉得新编辑器若具有一些功能可能会提高效率,一般情况下真的会有

按照上述步骤并坚持使用新的编辑器完成所有的编辑任务,则学习一个复杂的编辑器的过程通常是这样的:

  • 学习编辑器的基本操作(如前两个小时):例如,打开和编辑文件、保存与退出等

  • 学习时间累计达到一定时间后(如 20 个小时),使用新编辑器的效率会和使用老编辑器一样快

  • 此后,新编辑器的益处开始显现。因为有了足够的知识和肌肉记忆后,使用新编辑器将大大节省时间

现代编辑器都是一个复杂且强大的工具,永远有新东西可学:学的越多,效率越高

选择编辑器

当前存在许多优秀的编辑器,该使用哪个呢?这个问题并没有标准答案。选择其中一个一直用下去,遇到需要重复劳动或者不顺心的地方时,就去寻找解决办法,如更新配置和安装插件。有了足够多的知识和经验后,可以选择是否继续使用老编辑器,或尝试和更换新编辑器。

按照操作方式,编辑器可分为两种类型:基于命令行的和图形化的。基于命令行的编辑器一般启动较快,操作高效;图形化编辑器启动慢一点,但功能更加强大。

按照功能,编辑器又大致可分为三种类型:文本编辑器、代码编辑器以及集成开发环境(Integrated Development Environment,简称 IDE)。顾名思义,文本编辑器主要用于编写一大段文本,代码编辑器主要用于编写代码,IDE 主要用于开发大型软件。按照功能进行分类主要考虑该编辑器更适用(即更高效、更快捷)做哪种编辑工作,不代表其不能用于其他工作。例如,代码编辑器和 IDE 也可以编辑一大段文本(代码和软件本身也是文本啊),文本编辑器也可以编写代码和软件,代码编辑器一般也有 IDE 的部分集成开发功能。一般而言,文本编辑器启动速度最快,集成开发环境最慢。

例如,按照以上分类,vim 编辑器是一款基于命令行的文本或代码编辑器, Visual Studio Code(VS Code)是一款图形化的代码编辑器或 IDE, PyCharm 是一款图形化的IDE(主要开发 Python 语言写的软件)。

需要注意的是,编写代码时,经常要在文件间进行切换,并阅读、浏览和修改代码,而不是连续编写一大段文字,因此编写代码和编辑一长段纯文本是很不一样的。编写程序/软件时,还需要进行编译、链接、调试、版本控制等。因此,纯粹的代码编辑器和 IDE 是有所区别的,前者主要是让我们优雅地编写代码,后者集成了诸如编译、链接、调试、版本控制等功能,主要是让我们更高效地开发程序(往往是大型软件)。

对于刚接触编辑器的读者,我们根据个人经验推荐一些编辑器。熟练掌握这些编辑器后,可以尝试和使用其他更适合自己的编辑器。

  • VS Code 是目前最流行的代码编辑器或 IDE。启动较快,编辑文本也非常高效。推荐在日常科研中使用 VS Code 编辑文本和代码

  • vim 是目前最流行的基于命令行的文本或代码编辑器,有时候可能是用户唯一可以使用的编辑器。推荐掌握 vim 的基本编辑功能,以便在无法使用 VS Code 或编辑简单的文本/代码时使用

VS Code

安装 VS Code 可以参考配置操作系统中相应操作系统下的“日常软件”一节。

刚接触 VS Code 的用户在编辑文本和代码遇到疑问时,可随时通过以下方式查阅:

  • 点击 VS Code 菜单栏“帮助”,选择相关选项。例如,“交互式演练场”、“文档”(Visual Studio Code 官方文档)、“键盘快捷键参考”等

  • 使用 Google 搜索

建议在日常科研中随时根据个人习惯,去配置 VS Code、安装和使用扩展包等。

Vim

Vim 是一款基于命令行的编辑器,拥有以下特点:

  • 使用键盘快速完成文本编辑。Vim 避免了使用鼠标,甚至避免用上下左右键,因为这些需要太多的手指移动。所有需要用鼠标的操作都可以用键盘完成

  • 轻量级且执行快。对于许多简单任务,启动 vim 比使用图形化编辑器要快地多

  • 很多 Linux 发行版都预装了 vim,某些时候可能是我们唯一能使用的编辑器,比如使用远程计算机

操作模式

Vim 的设计以大多数时间都花在阅读、浏览和进行少量编辑改动为基础。因此,它具有多种操作模式,以下只介绍几种常用模式:

  • 正常模式:移动光标、复制、粘贴、删除等

  • 插入模式:插入文本

  • 命令模式:执行一些指令

在不同的操作模式下,键盘敲击的含义不同。Vim 默认会在左下角显示当前的操作模式。启动时的默认模式是正常模式,可以使用以下方式,在不同模式之间进行切换:

  • 按下 Esc 键可以从任何其他模式返回正常模式

  • 在正常模式下,按 i 键进入插入模式

  • 在正常模式下,按 : 键进入命令模式

日常科研使用 vim 编辑器时,大部分时间处于正常模式和插入模式中。

基本操作

使用 vim 编辑器打开 hello-world.txt 文件,若文件不存在则创建该文件。使用以上按键在不同操作模式之间进行切换,并观察左下角的显示:

# 若 vim 后面没有文件名,也会进入 vim
$ vim hello-world.txt

i 键进入插入模式,输入 Hello World,然后按 Esc 键回到正常模式。假设文本输入完毕且处于正常模式,按下 : 键进入命令模式,这时光标会立即跳到屏幕下方的命令行,然后输入 wq 即可保存文件并退出 vim。

命令模式的常用功能包括保存文件、退出 vim 等:

  • :q 退出 vim 并关闭窗口

  • :w 保存文件

  • :wq 保存文件并退出 vim

在正常模式下,可以使用以下常用编辑命令修改文本:

  • i 进入插入模式,可以输入文本

  • Shift + oo 分别在当前行之上和之下插入一行,并进入插入模式

  • yy 复制当前行

  • p 把复制内容粘贴到当前行的下面

  • dd 删除当前行

  • u 撤销上一次修改

  • Ctrl + r 重做上一次修改

扩展阅读

本文只介绍了 vim 的一些常见用法。日常科研中需要经常使用 vim 的用户可以参考以下教程,学习和掌握更多用法,配置 vim,以便更高效地编辑文本: