Skip to main content

关于 «周小天»

· One min read
周小天
{折腾 ⇌ 迷茫 ⇌ 思考]ing,在路上...

🗺️ 周小天 的知识地图

{折腾 ⇌ 迷茫 ⇌ 思考]ing,在路上...

‘内. ‘外. ‘静. ‘浮.
我 顺 指 指
自 其 内 外 浮
成 自 心 在 之
长 然 的 的 静
ㅤ 确 不
ㅤ 定 确
ㅤ 性 定
ㅤㅤㅤ 性

Arc: 一个试图改变历史的浏览器

· 7 min read
周小天
{折腾 ⇌ 迷茫 ⇌ 思考]ing,在路上...

背景

Arc Browser Company ,正在构建一种更好的互联网使用方式

当我们想到浏览互联网时,往往会忽略浏览器本身。相反,我们想到的是我们在网上做的所有事情(如阅读文章,收发电子邮件,观看节目等等)。而实现这一切的软件,即浏览器,是如此的普遍,以至于它被忽略了。

尽管我们的互联网使用方式已经发生了变化,但浏览器却一直保持着相对不变。当我们所有的其他软件工具都在向更好的方向发展时(具有更多的协作特性、灵活的界面和强大的功能),浏览器在很大程度上仍然保持着 25 年前的状态(URL 栏 + TAB)。

更重要的是,我们往往将浏览器的缺陷归咎于自己。当我们的浏览器有太多的标签时,会说自己效率低下;当我们在网上分心时,会告诉自己需要更多的约束;当我们找不到一个网址时,会认为自己是无组织的。造就这一切的浏览器难道就没有一点责任吗?

这就是为什么我们要建立一个新的浏览器,我们称之为 Arc,因为我们相信浏览器可以做得更多,以增强我们的能力。我们正在想象一个能够像我们一样快速思考的浏览器,为我们分担工作,并将我们的创造力向前推进。一个为我们在 2022 年使用互联网的方式所配备的浏览器,也是我们希望在未来使用互联网的基础(Arc 更像是一种轻量级的在线操作系统,应用程序则是 URL)。

A Startup Wants to Rescue You From Browser Tab Hell

browser-url-tab

下载安装

  • 安装完成,打开后创建 Arc 账号

    arc-step-1

  • 选择导入浏览器数据到 Arc(Chrome,Safari,Firefox,Edge)

    arc-step-2

  • 将浏览器下的书签导入到 Arc

    arc-step-3

  • 设置浏览器主题色(可以使用默认,在 Arc 设置中可以随时修改)

    arc-step-4

  • 设置高频使用的网址(可以使用默认,进入 Arc 后可以随时修改)

    arc-step-5

Arc 初识

  • 侧边栏
    • URL 栏(输入 URL 或关键词搜索)
    • Favorite 区(高频使用。支持拖拽)
    • Pin 区(经常使用,可以创建文件夹,分类进行管理。支持拖拽)
    • Tab 区(浏览器标签页,和常规浏览器类似,但在标签后多了一些操作选项,如复制链接,设置图标,Pin,重命名等。支持拖拽)
    • 底部包含 Library 及个人空间管理
      • Library 是可配置的,用于展示系统文件(如浏览截图,文档,桌面文件等),还支持创建笔记,画板。
      • 工作区管理包含创建,删除,排序,切换及设置(图标,主题)等
      • New Boost 功能(包含样式修改,内容替换,脚本注入等,注意此操作属于危险操作,可能会导致网页显示错误,请谨慎使用)
  • 插件 & 分屏区
    • 兼容 Chrome 体系下的插件
    • 分屏可以创建多窗口来进行多任务处理
  • 全局搜索框(可以通过快捷键触发)
  • 内容区

arc-layout

arc-theme

arc-notes-draw

Arc 总结

从 Arc 关于可以看到 Version 0.64.0 (34177) 是基于 Chromium Engine Version 104.0.5112.102 改造而来,走了类似于 Microsoft Edge 的路子,不同的是 Edge 只是对其进行局部优化,未改变浏览器核心交互方式,及操作习惯。而 Arc 则不然,大刀阔斧,主要包含以下方面(从我短暂的使用来看,欢迎补充):

  • 使用精心设计的侧边栏布局,极大程度释放了屏幕空间(支持固定,隐藏多种设置)
  • 经常访问的网址可以有多种保存方式(如 Favorite,Pin 等)
  • 多个人空间(可以按照个人习惯,将工作学习,生活娱乐完全隔离开来),而且每个空间可以定制个性化皮肤。
  • 适合多任务处理的分屏浏览(一边查资料,一边记笔记)
  • 内置小工具(如笔记,简易画板等)
  • Library 可以通过系统授权,将文件系统交由 Arc 来管理(更加专注,不需要频繁在系统文件和浏览器之前反复横跳)
  • 使用 Chromium Engine 的好处,是兼容了 Chrome 的插件生态,对严重依赖插件的用户来说,这个显得格外重要。
  • 针对专业人士开放的 New Boost 高级自定义功能(满足更多定制化需要)

arc-new-boost

浏览器历史

· 18 min read
周小天
{折腾 ⇌ 迷茫 ⇌ 思考]ing,在路上...

计算机世界是对现实世界的映射。当事物变得无法理解时,去源头找找,或许就明白了。

Chrome 100

在 2022 上半年,Chrome 将达到三位数的主版本号:100!浏览器在很久以前第一次达到版本 10 时,因为主要版本号从一位数变为两位数,用户代理解析库发现了许多问题(Changes in Opera’s user agent string format)。现在在 Chrome 和 Firefox 中都接近版本 100Edge 也不甘落后。当 Chrome 达到 100 版,将会导致一些网站不工作。谷歌已经开始调查和测试解决方案。

根据 Chromium Bug Tracker ,已知受到影响的网站主要是使用网页设计工具 Duda 开发的网站。这些网站都使用相同的代码来检查用户使用的 Chrome 版本。

案例

以 Chrome 为例,用户代理字符串为 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36

字符串最后,可以看到我们要寻找的是 Chrome/96.0.4664.110,它为我们提供了浏览器的准确版本号。但是,大多数 Web 开发人员可能只关心主要版本号,即 96

由于用户代理字符串是文本,开发人员需要自行提取信息以满足业务需求。对于 Duda,开发人员选择只读取 Chrome/ 之后的前两位数字。这意味着 Chrome/99 将是 99Chrome/100 将被视为版本 10

而 Duda(2015 年发布的版本)会自动阻止低于 Chrome 40 的版本,Chrome 99 之后的每个版本(100 - 109)的浏览器都将被视为版本 10,因此被阻止。

目前 Duda 已经修复了此问题(Chrome 100 Bug Was Fixed Months Before The New Version's Actual Release

检测与反馈

通过访问 Is Chrome 100 yet? 可以检查浏览器是否在 User-Agent 字符串中发送主要版本 100。

为了尽早检测三位数版本号可能导致的问题,在它成为现实前做好准备。我们可以在 Chrome 设置中开启 User-Agent100 的主版本(Force Chrome major version to 100 in the User-Agent string)来对网站进行测试。

  1. 访问 Is Chrome 100 yet?,页面返回 Yes!No.
  2. 打开 Chrome 浏览器并在地址栏中输入 chrome://flags
  3. 将打开一个包含可用实验的页面, 找到 User-Agent 中启用强制主要版本为 100 的选项(Force major version to 100 in User-Agent)。然后重新访问步骤 1。

chrome-100

成功开启后,然后测试自己的网站。如果发现问题,可以将错误报告发送至 Web Compat 以帮助 Web 浏览器准备三位数的主版本号!

里程碑

Web 浏览器简史 - 世界历史从不缺少史诗般的权力斗争,有征服世界的暴君,也有落败的勇士。Web 浏览器的历史也大抵如此。学术先驱们编写出引发信息革命的简易软件,并为浏览器的优势和互联网用户而战。

《万维网 25 岁生日快乐》中可以了解更多网络诞生的相关信息。

Mosaic

Mosaic User Agents - NCSA_Mosaic/2.0 (Windows 3.1)

NCSA Mosaic,是一个早期普及的网页浏览器,也是互联网协议如 FTP、NNTP 和 Gopher 的客户端,浏览器因支持多种互联网协议而命名。其直观的接口、可靠性和简易安装,因此在当时大受欢迎,也是第一个可以在文字中嵌入图片,而不是在单独的窗口中显示图片的浏览器。

Mosaic 是引发 1990 年代互联网泡沫的网页浏览器。1992 年 11 月,世界上只有仅仅 26 个网站,每一个网站都受人注目。1993 年,Mosaic 推出了一个叫做 What’s New (What's New With NCSA Mosaic) 的页面,几乎每天都会提供给大家一个全新网站的链接。这段期间,互联网的使用率正在由学术界和大型工业研究机构之外迅速普及。然而,这正是 Mosaic 浏览器的易用性推动了网络爆发性的成长,到了 1995 年 8 月,网站数量已经超过了一万个,1998年达到了数百万个网站数量。

Mosaic

Mozilla

Firefox User Agents - Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0

Mozilla 是一个自由软件社群,由网景通信公司的成员于 1998 年创立。在非正式的场合下,“Mozilla” 这个名字常用于不同的事物上。这些事物大都与现已歇业的网景通信公司及其旗下的应用软件相关。

最初,“Mozilla” 被用作 网景导航者(Netscape Navigator) 的开发代号。网景通信公司希望“网景导航者”能够取代当时世界第一的 Mosaic,而这个名字由 “Mosaic Killa”(Killa 是俚语中 Killer 的拼法)变化而来,并与经典的虚拟怪物哥斯拉谐趣:“Godzilla eat the Mosaic”,即 Mosaic + Godzilla + Killa = Mozilla,Netscape 工程师杰米·加文斯基说他是在一次 Netscape 员工会议上想到这个名字的。

Mozilla Firefox,通称 Firefox,中文也通称“火狐”,是一个自由及开源的网页浏览器,由 Mozilla 基金会及其子公司 Mozilla 公司开发。Firefox 于 2002 年由 Mozilla 社群成员创建,当时叫做“Phoenix”。Firefox 于 2004 年 11 月首次发布,并且 9 个月内下载量超过 6,000 万,获取了巨大的成功,Internet Explorer的主导地位首次受到了挑。其被认为是 Netscape Navigator 的精神续作。

Netscape Mozilla Firefox

Internet Explorer

Internet Explorer User Agents - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Internet Explorer(旧称 Microsoft Internet Explorer 和 Windows Internet Explorer,简称 IE 或 MSIE),是微软所开发的图形用户界面网页浏览器。自从 1995 年开始,内置在各个新版本的 Windows 操作系统,也是微软 Windows 操作系统的一个组成部分。

Internet Explorer 曾是使用最广泛的网页浏览器,在 2002 年和 2003 年达到 95% 的使用率高峰。微软以捆绑方式赢得与 Netscape 的第一次浏览器大战,Netscape 是 1990 年代的主流浏览器。

Internet Explorer 计划由托马斯·里尔登开始于 1994 年夏天,当时 Netscape Navigator 占据浏览器市场份额 70% 以上。竞争对手苹果公司的 Mac OS 更使用 Netscape 作为默认的浏览器,但当时的 Windows 没有一个默认的浏览器。微软需要有一个自己的浏览器,但它没有时间从零开始创造一个浏览器。因此和 Spyglass 合作,Internet Explorer 从早期一款商业性的专利网络浏览器 Spyglass Mosaic 派生出来。

IE

Opera

Opera User Agent - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 OPR/82.0.4227.43

Opera 是由 Opera 软件为个人电脑推出的网页浏览器,用于 Microsoft Windows、macOS 和 Linux 操作系统。

1996 年首次公开发布 Opera 2.0 版本,但仅在 Microsoft Windows 上运行。1998 年开始开发第一款用于移动设备平台浏览器。

Opera 在 2013 年以后采用 Blink 排版引擎 (layout engine)。此前 Opera 版本曾采用 Presto 排版引擎,并在 FreeBSD 系统上运行。

Opera

Safari

Safari User Agent - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15

Safari 浏览器 是苹果公司所开发,并内置于 macOS(前称 OS X、Mac OS X)、iOS 与 iPadOS 的网页浏览器。Safari 浏览器在 2003 年 1 月 7 日首度发行测试版,并从 Mac OS X Panther 开始成为 Mac OS X 的默认浏览器,也是 iOS 和 iPadOS 内置的默认浏览器。Windows 版本的首个测试版在 2007 年 6 月 11 日推出,支持 Windows XP、Windows Vista 和 Windows 7,并在 2008 年 3 月 18 日推出正式版,但苹果已于 2012 年 7 月 25 日停止开发 Windows 版的 Safari 浏览器。

在 1997 年以前,Mac 预装的浏览器是 Netscape Navigator。之后苹果和微软达成协议,以在 Mac 上使用 Internet Explorer for Mac 作默认浏览器换取微软开发 Mac 版的 Microsoft Office。

2003 年 1 月 7 日,在旧金山举行的 Macworld 大会上,史提夫·乔布斯宣布苹果正在开发自己的浏览器,称为 Safari 浏览器。它基于苹果的 KHTML 排版引擎内部分支,称为 WebKit。直至 2003 年 6 月,苹果才推出自家的 Safari 浏览器,同时微软也终止开发苹果版的 IE 浏览器。Mac OS X v10.3 仍保留 IE,但至 10.4 版苹果就仅预装 Safari 浏览器。

Safari

Chrome

Chrome User Agent - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36

Google Chrome 是由 Google 开发的免费网页浏览器,过去也用 Chrome 称呼浏览器的外框。Chrome 相应的开放源代码计划名为 Chromium,而 Google Chrome 本身是非自由软件,未开放源代码。

Chrome 代码是基于其他开放源代码软件所编写,包括 Apple WebKit(其分支 Blink 被用于基于 Chromium 的网页浏览器) 和 Mozilla Firefox,并开发出称为 V8 的高性能 JavaScript引擎。Google Chrome 的整体发展目标是提升稳定性、速度和安全性,并创造出简单且有效率的用户界面。

Chrome 50 结束了对 Windows XP 与 Windows Vista 系统的支持,这两个系统上的最后版本为 49.0.2623.112。

Chrome

User-Agent 大乱斗

🙈 浏览器用户代理字符串(navigator.userAgent)一团糟,几乎没用,每个浏览器都假装是其他浏览器,混乱不堪。

具体可以查看这篇文章 《History of the browser user-agent string》,以风趣幽默的方式介绍了浏览器之间的“尔虞我诈”,“勾心斗角”,堪比 宫斗

一般来说,如果一个网站需要知道你使用的是什么浏览器以及它的更新程度,它会检查所谓的“用户代理字符串”。这是浏览器附加到它建立的每个网络连接的一小段文本,让网站了解自己。如果分解用户代理字符串实际所说的内容,会发现很多杂乱无章的东西,其中大部分内容是为了保持与 1990 年代和 2000 年代初期的站点的兼容性。所以说有时候 使用用户代理字段进行浏览器检测 并不是一个好主意。

用户代理字符串有各种形状和大小,唯一用户代理的数量一直在增长。List of User Agents 中收集了数以百万计的用户代理,并根据检测到的许多内容(操作系统、浏览器、硬件类型、浏览器类型等)进行分类。

关键事件

摘自《History of the browser user-agent string》

  • 一开始有 NCSA Mosaic,Mosaic 自称 NCSA_Mosaic/2.0 (Windows 3.1),Mosaic 在显示图片的同时也显示文字,大家都很欢欣鼓舞。

  • 后来出现了一个新的浏览器,叫做 “Mozilla”,是 “Mosaic Killer” 的缩写,但 Mosaic 并不高兴,所以公开名称改为 Netscape。Netscape 自称 Mozilla/1.0(Win3.1),人们更加欢欣鼓舞。Netscape 支持 Frames(框架),Frames 在人们中间流行起来,但 Mosaic 不支持 Frames,于是就出现了 "用户代理嗅探(user agent sniffing)",网络管理员向 "Mozilla "发送 Frames,但向其他浏览器发送的不是 Frames。

  • 网景取笑微软,把 Windows 说成是 "调试不力的设备驱动程序",微软很生气。于是,微软制造了他们自己的网络浏览器,他们称之为 IE(Internet Explorer),希望它能成为 "网景杀手"。Internet Explorer 虽然支持 Frames,但并不是 Mozilla,所以没有被赋予 Frames。微软变得不耐烦了,不希望等待网络管理员了解 IE 并开始向它发送 Frames,因此 IE 浏览器宣布它是 "Mozilla compatible(Mozilla 兼容的)",并开始冒充网景,称自己为 Mozilla/1.22 (compatible; MSIE 2.0; Windows 95),IE 浏览器收到了 Frames,整个微软都很高兴,但网络管理员感到困惑。

  • 微软将 IE 与 Windows 一起出售,并使其比网景更好,第一次浏览器战争在这片土地上肆虐。看吧,网景被干掉了,微软方面一片欢腾。但网景重生为 Mozilla,Mozilla 建立了 Gecko,并称自己为 Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826,Gecko 是渲染引擎,Gecko 很好。而 Mozilla 变成了 Firefox,并称自己为 Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0,Firefox 非常好。而 Gecko 开始成倍增长,其他浏览器的诞生也使用了它的代码,它们自称为 Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0. 8.1 这一个,和 Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0 另一个,每一个都假装是 Mozilla,而且都是由 Gecko 驱动。

  • Gecko 是好的,而 IE 不是,嗅觉重生,Gecko 被赋予了很好的 web 代码,其他浏览器则不然。而 Linux 的追随者则非常悲伤,因为他们建立了 Konqueror,其引擎是 KHTML,他们认为它和 Gecko 一样好,但它不是 Gecko,所以没有得到好的网页,于是 Konquerer 开始假装 "like Gecko",以获得好的网页,并称自己为 Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD)(KHTML,like Gecko),出现了很多混乱。

  • 苹果建立了 Safari,使用 KHTML,增加了许多功能。分叉(Fork)了该项目,称之为 WebKit,希望为 KHTML 编写页面,因此 Safari 自称为 Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5,情况越来越糟。

  • 微软对火狐的恐惧很大,IE 浏览器又回来了,并自称 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0),它能渲染好的代码,但只有在网站管理员命令它这样做的情况下。

  • 谷歌建立了 Chrome,Chrome 使用 Webkit,它就像 Safari 一样,想要为 Safari 制作页面,所以假装是 Safari。于是 Chrome 使用 WebKit,并假装是 Safari,WebKit 假装是 KHTML,KHTML 假装是 Gecko,所有的浏览器都假装是 Mozilla,Chrome 自称 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13,用户代理字符串完全是一团糟,几乎没有用处,每个人都假装是其他人,混乱不堪。

结束语

软件生态从来不是孤立的,而是在借鉴,创新中,不断发展,才有了今天这个五彩斑斓的互联网世界。

常用 VS Code 配置

· 3 min read
周小天
{折腾 ⇌ 迷茫 ⇌ 思考]ing,在路上...

Terminal

  • Oh My Zsh - Unleash your terminal like never before.
  • starship - The minimal, blazing-fast, and infinitely customizable prompt for any shell!

Extensions

  • vsg - Explore Github repositories directly from Visual Studio Code.
  • Remote Repositories - Remotely browse and edit a GitHub repository
  • GitHub Copilot - Your AI pair programmer
  • CodeSnap - Take beautiful screenshots of your code
  • Live Share - Real-time collaborative development from the comfort of your favorite tools.
  • Local History - Save files into local history
  • Bracket Pair Colorizer - A customizable extension for colorizing matching brackets
  • filesize - Show the current file size in the status bar
  • Code Runner - Run C, C++, Java, JS, PHP, Python, Perl, Ruby, Go, Lua, Groovy, PowerShell, CMD, BASH, F#, C#, VBScript, TypeScript, CoffeeScript, Scala, Swift, Julia, Crystal, OCaml, R, AppleScript, Elixir, VB.NET, Clojure, Haxe, Obj-C, Rust, Racket, Scheme, AutoHotkey, AutoIt, Kotlin, Dart, Pascal, Haskell, Nim...
  • indent-rainbow - Makes indentation easier to read
  • Prettier - Code formatter - Code formatter using prettier
  • Highlight Matching Tag - Highlights matching closing and opening tags
  • Import Cost - Display import/require package size in the editor
  • Even Better TOML - Fully-featured TOML support
  • Code Spell Checker - Spelling checker for source code
  • Color Highlight - Highlight web colors in your editor
  • Auto Import - Automatically finds, parses and provides code actions and code completion for all available imports. Works with Typescript and TSX
  • Git Graph - View a Git Graph of your repository, and perform Git actions from the graph.
  • Bookmarks - Mark lines and jump to them
  • Quokka.js - JavaScript and TypeScript playground in your editor.

Theme

  • Shades of Purple - A professional theme suite with hand-picked & bold shades of purple for your VS Code editor and terminal apps. One of the excellent, most downloaded, and top-rated VSCode Themes on the marketplace. Part of VSCode.pro course.
  • Material Icon Theme - Material Design Icons for Visual Studio Code

TODO

  • Todo Tree - Show TODO, FIXME, etc. comment tags in a tree view
  • Better Comments - Improve your code commenting by annotating with alert, informational, TODOs, and more!

Preview

  • Excel Viewer - View Excel spreadsheets and CSV files within Visual Studio Code workspaces.
  • Image preview - Shows image preview in the gutter and on hover
  • Svg Preview - Preview for Svg files
  • LaTeX Workshop - Boost LaTeX typesetting efficiency with preview, compile, autocomplete, colorize, and more.

Rust

开发利器之命令行

· 9 min read
周小天
{折腾 ⇌ 迷茫 ⇌ 思考]ing,在路上...

高效使用命令行是程序员必备的技能

以下资源均被收录在 lencx/awesome(关于各种有趣主题的精彩列表),包含 weekly,rust, webAssembly,js,css,tools 等不同主题。

zsh

Oh My Zsh - Oh My zsh 是一个开源的、社区驱动的框架,用于管理您的 zsh 配置。

  • antigen - 是一小组功能,可帮助您轻松管理 shell (zsh) 插件,称为捆绑包。这个概念与典型的 vim + pathogen 设置中的包几乎相同。 Antigen 之于 zsh,Vundle 之于 vim。
  • zsh-autosuggestions - zsh 的类似 Fish 的快速/不显眼的自动建议。它根据历史记录和完成建议您键入的命令。
  • zsh-syntax-highlighting - 类似 Fish shell 的语法高亮显示。
  • history-substring-search - 历史搜索功能,您可以在其中键入历史中任何命令的任何部分,然后按选择的键,例如向上和向下箭头,以循环匹配。
  • spaceship - 是一个简约、强大且高度可定制的 Zsh 提示符。它结合了方便工作所需的一切,没有不必要的复杂性,就像真正的宇宙飞船一样。
  • starship - 适用于任何 shell 的最小、极快且可无限定制的提示!是 spaceship 的替代品。

zsh

bat

bat - 类似 cat(1),但带有 git 集成和语法高亮。

bat

fd

fd - 是一种简单快速和用户友好的 find 替代方案。

fd

git

gh

gh - GitHub CLI 或 gh 是 GitHub 的命令行界面,可在您的终端或脚本中使用。

gh

gix

gix - gix 是用于访问 git 存储库的命令行界面 ( CLI )。它是为了优化用户体验而编写的,其性能与规范实现一样好或更好。此外,它以各种小型 crate 的形式提供了一个简单且安全的 API ,用于轻松实现自己的工具。

dura

dura - Dura 是一个后台进程,它监视您的 Git 存储库并提交您未提交的更改,而不会影响 HEAD、当前分支或 Git 索引(暂存文件)。如果您遇到异常导致工作内容丢失,进入 dura 分支可以恢复。如果没有 dura,可以在编辑器中使用 Ctrl-Z 来恢复状态。2021 年就是这样。计算机崩溃,Ctrl-Z 只能独立处理文件。Dura 快照随时更改整个存储库,因此可以恢复到“4 小时前”而不是“按 Ctrl-Z 40 次或其他”。

delta

delta - 用于 gitdiffgrep 输出的语法高亮分页器。

delta

tig

tig - Git 的文本模式界面。

tig

git-journal

git-journal - Git 提交消息和变更日志生成框架。

git-journal

ls

exa

exa - 是 ls 的现代替代品。

exa

lsd

lsd - 下一代 ls 命令。

lsd

nat

nat - 具有有用信息和色彩的 ls 替代品。

nat

just

just - 是保存和运行项目的特定命令的简便方法,其语法受 make 启发。

just

Asciinema

asciinema - 是一个免费的开源的轻量级、纯文本终端录制方法。以正确的方式记录和分享您的终端会话。

asciinema

fff

fff - 用 bash 编写的简单文件管理器。

fff

Watchexec

watchexec 是一个简单的独立工具,它监视路径并在检测到修改时运行命令。

watchexec

Ripgrep

ripgrep - 是一种面向行的搜索工具,它递归地在当前目录中搜索正则表达式模式。默认情况下,ripgrep 将遵守 gitignore 规则并自动跳过隐藏文件/目录和二进制文件。

ripgrep

Hexyl

hexyl - 是一个简单的终端十六进制查看器。它使用彩色输出来区分不同类别的字节(NULL 字节、可打印的 ASCII 字符、ASCII 空白字符、其他 ASCII 字符和非 ASCII)。

hexyl

Zellij

zellij - 是一个面向开发人员、面向运维的人员和任何喜欢终端的人的工作区。它的核心是一个终端多路复用器(类似于 tmuxscreen),但这仅仅是它的基础设施层。

zellij

Image

cavif

cavif - AVIF 图像的编码器/转换器,纯 Rust 实现。

cavif --quality 60 image.png

svgcleaner

svgcleaner - 清理 SVG 文件中不必要的数据。

svgcleaner --indent=2 --paths-coordinates-precision=5 --join-arcto-flags=yes in.svg out.svg

CSV

xsv

xsv 是一个用于索引、切片、分析、拆分和连接 CSV 文件的命令行程序。

$ xsv stats worldcitiespop.csv --everything | xsv table
field type min max min_length max_length mean stddev median mode cardinality
Country Unicode ad zw 2 2 cn 234
City Unicode bab el ahmar Þykkvibaer 1 91 san jose 2351892
AccentCity Unicode Bâb el Ahmar ïn Bou Chella 1 91 San Antonio 2375760
Region Unicode 00 Z9 0 2 13 04 397
Population Integer 7 31480498 0 8 47719.570634 302885.559204 10779 28754
Latitude Float -54.933333 82.483333 1 12 27.188166 21.952614 32.497222 51.15 1038349
Longitude Float -179.983333 180 1 14 37.08886 63.22301 35.28 23.8 1167162

csview

csview - 带有 cjk/emoji 支持的 cli 的漂亮 csv 查看器。

csview

Tokei

tokei - 是一个显示代码统计信息的程序。 Tokei 将显示文件数、这些文件中的总行数以及按语言分组的代码、注释和空白。

===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
BASH 4 49 30 10 9
JSON 1 1332 1332 0 0
Shell 1 49 38 1 10
TOML 2 77 64 4 9
-------------------------------------------------------------------------------
Markdown 5 1355 0 1074 281
|- JSON 1 41 41 0 0
|- Rust 2 53 42 6 5
|- Shell 1 22 18 0 4
(Total) 1471 101 1080 290
-------------------------------------------------------------------------------
Rust 19 3416 2840 116 460
|- Markdown 12 351 5 295 51
(Total) 3767 2845 411 511
===============================================================================
Total 32 6745 4410 1506 829
===============================================================================

procs

procs - 是用 Rust 编写的 ps 的替代品。

procs

eva

eva - 简单的计算器 REPL,类似于 bc(1),具有语法高亮和持久历史记录。

eva

hyperfine

hyperfine - 命令行基准测试工具。

hyperfine

ffsend

ffsend - 从命令行轻松安全地共享文件。 一个功能齐全的 Firefox Send 客户端。

ffsend

alacritty

alacritty - 是一个现代终端仿真器,具有合理的默认值,但允许进行广泛的配置。 通过与其他应用程序集成,而不是重新实现它们的功能,它设法提供了一组灵活的高性能特性。 目前支持的平台包括 BSD、Linux、macOS 和 Windows。

alacritty

Node.js

nvm

nvm - 允许您通过命令行快速安装和使用不同版本的 Node.js

nvm

fnm

fnm - 快速简单的 Node.js 版本管理器,基于 Rust 实现。

fnm

volta

Volta - 快速无缝地安装和运行任何 JS 工具! Volta 是用 Rust 构建的,以二进制文件形式发布,跨平台支持(macOS、Windows、Linux)。

volta