在低配硬件上工作:为何我选择终端

2024年9月8日

我的大部分用于编程或其他工作的电脑配置都不高,这已经不是什么秘密了。我之前的主力笔记本电脑运行的是 Intel Celeron N4000,而我现在用来写这篇文章的平板电脑则搭载了 Intel Atom x5-Z8350。

但是,由于我为编程设置的工作流程以及我选择的操作系统和桌面环境,我从来没有在这些硬件上遇到过糟糕的体验。虽然我提倡使用根据你的工作和工具量身定制的成熟工作流程,但在配置极低的硬件上,尤其是那些使用 Intel Atom、Celeron 或 Pentium 系列 CPU 的设备上,这通常是不可能的。

我工作流程的第一个关键组成部分是 Linux。虽然我每天都使用 Arch,并将其作为我的机器上的默认“桌面”操作系统,但这不一定是最好的发行版。任何能让你开箱即用地拥有最小化设置的发行版(可能也称为“服务器”安装)都可以。我选择 Arch 是因为我喜欢它的包管理器 pacman,AUR (以及 AUR 助手) 的易用性以及其坚实的文档。

我工作流程的第二个关键组成部分是窗口管理器。完整的桌面环境通常带有大量的视觉效果、内置实用程序以及与系统上其他应用程序的集成。虽然这很有用,但通常会以性能和存储空间为代价,这就是我更喜欢窗口管理器的原因。我选择的窗口管理器是 i3wm,因为它轻量级、键盘驱动且易于配置。当然也存在其他的窗口管理器,例如 Fluxbox、fvwm 和 qtile。

第三个和第四个关键组成部分密切相关:终端和文本编辑器。我过去使用 nano,但最近开始使用 Neovim,这是一个非常舒适的文本编辑器,但新用户的学习曲线陡峭。我使用的终端是 Alacritty。我喜欢使用终端文本编辑器而不是图形化文本编辑器的原因是它的通用性。无论我是在主力机器、备用便携机器上,还是在 SSH 连接的服务器/VM 上,我都可以使用相同的文本编辑体验完成我的工作,因为它都基于终端的相同基本原理。终端文本编辑器也更轻量级,因为终端为它们提供了所有的窗口管理功能,而且终端本身就是轻量级应用程序,因为它们不需要执行太多非常新颖或 CPU 密集型的操作。

所有这些组件结合在一起,创造了一种不仅可以在多台机器上移植,而且资源占用少,即使在配置极低的硬件或过时硬件上也能舒适使用的文本编辑/编程体验。我的工作流程也与我精简依赖项的编程理念相辅相成,我优先考虑编译时间和二进制文件大小,并有意识地尽可能减少依赖项的引入,这也可以通过鼓励程序员认真考虑每个新增功能来帮助避免功能蔓延。