在 Linux 生态系统中,各种不同的 shell 选择使得这个功能的多样性和强大性脱颖而出。

除了经典的 Bash,以及 Zsh、Tcsh 等,Fish 一直以其用户友好的界面和高级功能在众多 Linux 用户中广受认可和采用。

最近发布的 Fish 3.7.0 版本,包含超过 1289 次提交,巩固了 Fish 在用户选择中的地位,承诺提供改进和修复。让我们来看看其中的亮点。

Fish Shell 3.7.0 主要亮点

Fish 3.7.0 提升了命令行历史管理。现在,用户可以轻松地找到具有子序列匹配的复杂命令行。历史记录分页器还引入了更智能的搜索功能以及处理未匹配搜索查询的更直观方式。

在性能方面,命令完成和 globbing 显著提高,尤其是在较慢的文件系统(如 NFS)上,对于处理繁重的命令行工作负载的用户来说,这是一个巨大的胜利。

此次更新的另一个突出特点是为多键序列设置超时的能力,增强了 vi 模式中模式切换等功能的可用性。与此同时,LS_COLORS 将不再自动设置,督促用户接受更个性化的配置。

脚本和命令行改进

  • 稳定性和灵活性: Fish 3.7.0 解决了几个错误,并增强了脚本编写的体验。从修复崩溃情况到改进内置的 ‘jobs’ 命令,这次更新使脚本编写更加可靠和灵活。
  • 交互体验: 更新改变了交互式体验,如 vi 模式中改进的历史搜索、iTerm2 中更好的工作目录报告以及增强的选择颜色配置。
  • 命令完成和提示增强: Fish 3.7.0 还引入了用于历史管理的新 bind 函数,改进了错误消息,并扩展了对外部命令的支持。

美学和可用性调整

默认主题现在使用命名颜色,与终端调色板保持一致,Dracula 主题与上游变更同步。此外,提示更准确地显示工作目录。

最后,Fish 3.7.0 添加了大量各种命令的完成,使用户的生活更加轻松。该版本还改进了手动页完成生成器,进行了其他完成调整。

Rust:未来之路

Fish shell 的主要编码语言是 C++。然而,这将很快发生改变。

Fish 的主要开发者之一 David Adam 确认,几乎所有的 C++ 代码都已成功过渡到 Rust。这次过渡增加了 87,029 行 Rust 代码,同时删除了所有 76,776 行 C++ 代码,标志着一次百分之百的重写,根据他们最新的更新。

然而,他澄清说,这一里程碑并不意味着 Fish shell 的新版本已经准备好供终端用户使用。项目的当前状态令人鼓舞,具有一些性能改进,但在某些领域仍然面临挑战。

值得注意的是,这次重写尚未实现其技术目标,特别是在涉及线程安全性方面,这是转向 Rust 的主要动机。

此外,平台支持仍然是一个重大障碍。短期内对于 Cygwin 和 MSys2 等平台的支持似乎不太可能,而为旧版 Linux 发行版打包也存在挑战。

考虑到这一点,现有的 Fish 的第三个系列将继续使用 C++ 进行编码。但是,当它推出第四个系列时,预计它将通过将其主要编程语言转向 Rust 来进行重大改变。

安装相关链接:https://www.linuxmi.com/fish-linux-shell.html

发表回复