虽然说不上 iTerm2 具体比系统自带的终端工具除好看之外还有哪些优点,但这并不影响它成为我一直以来装机必备的终端工具。直到近期我看到了基于 Rust 开发的 warp,一款号称从第一性原理进行重塑了的终端,在近期开始了公测。更让我惊讶的是,该工具还获得了来自 GVNeoBoxGroup、Dylan Field 等 2300 万美元的投资。

官方提到对于开发者效率而言,IDE 和终端是至关重要的。在过去的 40 年中,IDE 已经有了非常大的改善,而终端却没有长足的进步。相较于 VS Code 的使用体验,使用终端的体验仿佛回到了上世纪 70 年代。在原文中还有句颇有意味的话:

Only 70% of developers use VSCode, while 100% use the terminal. So why is the terminal experience still so lackluster?

:::info

我从去年开始关注 Rust,也尝试开发了一些简单的应用。基于 warp 的情况,我斗胆预测一下近几年用 Rust 来重新构建系统层面的软件会成为一种趋势,并且会有不错的市场机会。

:::

带着对 warp 的极大好奇心,我开始进行了使用,但一开始就遇到了问题。

使用 warp 首先需要通过 GitHub 登录,而 warp 社区中已经有一些人对此情况表示不满,因为对于一款终端工具来说,登录账号不应该是必须的。

除此之外,我还遇到了登录过程中 warp 未响应的问题,官方已经明确了这是个 BUG,应该在近期会修复。关于登录部分的 Issue 可以点这查看,我也在此放下解决方案。

1
2
3
4
# 在终端中输入以下内容
export https_proxy=http://127.0.0.1:50351 http_proxy=http://127.0.0.1:50351 all_proxy=socks5://127.0.0.1:50351 # 替换成自己本地的代理

/Applications/Warp.app/Contents/MacOS/stable

warp 初映象

截屏2022-04-10 15.40.22

这是打开 warp 后的首屏,感觉没啥特殊的。

主题切换

新工具上来当然要先换肤了,warp 支持与系统同步暗黑模式,但感觉对我来说没啥用处。

使用快捷键 T 即可呼出切换主题功能,我发现了一款粉色爱好者狂喜的主题,如下,坚定了我探索下去的想法。

像文本编辑器一样输入命令

Warp makes input and output easy, and removes the need for most configuration. Input works like a modern text-editor, and output works like a data notebook. Moreover, Warp makes command-entry fast and fun by suggesting commands for commonly used tools and providing built-in workflows that save developers time.

warp 相较于其他终端工具最直观的一个区别是,它输入命令行的地方完全是一个纯文本的形式,换句话说,你可以使用鼠标直接选中某些字符串,或者是使用类似 配合 的快捷键来移动光标,像在 IDE 中一样顺滑,而在 iTerm2 中是没办法做到的。甚至像 IDE 一样支持多个光标:

image-20220410175749098

对于一些从网上复制过来的命令需要修改内容的时候,之前就非常痛苦,而 warp 某种程度上说有效解决了这个问题。此外,它还会展示每个命令的运行时间。

image-20220410155237842

对于不同命令的输出结果,warp 也是按照不同的块来进行呈现的,有点像 notebook 的味道。

UI 的扩展

iTerm2 配合 Fig 实现的效果现在在 warp 中是自带的,只需要按下 Tab 键就能出现 UI

image-20220410175853111

image-20220410180052954

但目前还不支持中文的显示,我已经在 GitHub 提了 Issue,但不确定什么时候能够支持。

:::info

顺带提一嘴,我一直习惯于用超级右键在对应目录快速进入终端,但目前还没有支持 warp。作为专业版付费用户,我已经提交了新功能的申请,并且在几分钟之内得到了 Better365技术支持的回复「收到,后续安排,谢谢宝贵意见」,希望可以早日支持。

截屏2022-04-10 22.06.57

:::

查看历史命令

之前在 iTerm2 中想要使用历史命令一般都是一直按,直到找到了对应的一条,或者使用 history | grep 后接关键词进行搜索。在 warp 中按 之后会出现 UI,可以方便的进行翻页:

image-20220410180917789

配合 R 快捷键可以很方便查看相关的历史命令:

image-20220410181255227

内置的 Workflow

通过 R 的快键键可以呼出 Workflow,里面已经内置了不少常用的命令,当然也支持自定义的扩展。

image-20220410181723394

本地远程都一样

wrap 的能力,例如查询历史命令等功能在连接服务器之后依然可以使用。