本文作者飞猪前端 @Tw93,分享最近折腾的最快终端 Alacritty。

长话短说

良久没有折腾电脑的指令行终端东西了,之前用了好多年的 iTerm2,因为颜值党的原因去年开端运用 Hyper,调配 Oh My Zsh 用得算随手,唯一便是冷启动有些慢。后边也有试过 Warp、Wez’s、Kitty 这一类,怎么办仍是不太随手。

最近发现了 Alacritty,一个根据 Rust 运用 OpenGL 加速的跨平台终端仿真器,只要 5M 的姿态,传说中是最快的终端,关所以不是最快的终端,在官网文档里面 这段话 阐明,试了试发现是真的快,不过也是真的丑,默许的作用丑出天边,直接就劝退一批人了。想着要不要改造改造,周末有空给折腾了下,最终成品还不错,所以将装备按照次序写下来给到有兴趣折腾的同学玩玩,大约 10min 可搞定,此外 20230211 经过折腾 Tmux 让 Alacritty 支撑了多 Tab 切换的功用,在文章最终补充。

一、下载装置包

开端之前,能够去 Alacritty Github 下载好对应的包,Mac 用户对应的包是这个 Alacritty-v0.11.0.dmg,下载好后,你将看到下图左边作用,最终咱们将改成右侧优化作用。

改良了下传说中最快的终端

二、替换默许的运用图标

运用图标实在太丑了,首要咱们能够下载我这边的一个 logo.icns,在运用文件夹中找到 Alacritty.app 选中后快捷键 command + i 翻开显现简介,然后将下载的 icns 文件拖动到左上角图标上,即可完结替换,最终从头下图标就主动更新了。

三、让他的展现变得美丽些

个人比较习气软件运用沉浸式头,一起字体喜爱用 JetBrains Mono,本地没有能够直接下载装置,最终按照喜爱装备色彩,好在这儿设置悉数能够放到 ~/.config/alacritty/alacritty.yml,我的是 alacritty.yml,运转如下指令,能够直接下载并放到对应的方位。

curl -fLo ~/.config/alacritty/alacritty.yml --create-dir \
     https://gw.alipayobjects.com/os/k/j2/alacritty.yml

履行完,从头翻开下试试,作用差不多会变成上面图片中的右图作用了。此外除了样式的装备,还添加了一些常用的快捷键(哎,竟然快捷键都要装备),包含如下:

command+r:清屏,整理掉历史指令行的显现
command+w: 隐藏,默许是直接quit了,这儿改成隐藏
conmand+t:  新开窗口,假设需求第二个终端窗口
command+shfit+w:封闭当时窗口
command+delete:删除一行
command+f:搜索关键字
command + ←:跳到行首
conmand + →:跳到行尾

装备完结后,UI 色彩和字体展现大约是这样,基本上比较舒畅的高亮

改良了下传说中最快的终端

四、要不要试试 fish shell

不少同学应该是运用的 zsh,我之前也是,不过 zsh 全体加载运用性能其实不是很快,一起装备起来也不是那么方便,这儿引荐能够试试 Fish,很开箱即用,一起性能很不错,内置了主动提示、语法高亮、tab 主动完结、可视 Web 装备功用,此外 shell 的 prompt 加载超级快,几乎没有延迟。

首要可履行 brew 装置 fish shell,履行过程中应该会问你要不要设置成默许,假设装置完结后,从头翻开默许不是 fish,可参阅此文档 default-shell 设置成默许。

brew install fish

装置完结 fish 以后,其实基本上够用了,也能够履行 fish_config 翻开 web 可视化设置,此外我一般不会运用太多插件,可是这两个很有必要一装,过程可见下面装置指令。

第一个是z,他的作用是帮你记住你之前的历史翻开,能够在任何路径,一键翻开对应的地址,装置地址在jethrokuan/z,运用前需求先装置 fisher用于下载插件。

第二个是 pure-fish/pure 主题,比较极简,相同也是能够经过 fisher 下载。

# 装置fisher
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/HEAD/functions/fisher.fish | source && fisher install jorgebucaran/fisher
# 装置z
fisher install jethrokuan/z
# 装置pure主题
fisher install pure-fish/pure

最终装置好以后的作用如下:

关于 pure 主题而言,能够略微装备下,直接指令行输入即可,如下所示

# 能够将本来的>修改成你喜爱的表情图画,比方我设置的是
set --universal  pure_symbol_prompt 
# 假设不喜爱上下行的方法,能够将指令行输入和当时文件夹放一行
set --universal pure_enable_single_line_prompt true

悉数装备完结后,运用正常时刻共同的录屏,没有任何加速的情况下,基本上能够看到秒开。

五、或许的问题

  1. npm 大局装置的指令行履行无效?基本是没有将大局装置目录设置成 PATH,能够参阅 NPM global commands not working with fish。
  2. 怎么设置 Alacritty 能够大局快捷键翻开?引荐试试 Thor,设置他的快捷键为option+空格或许你喜爱的,这样及时在没有翻开的情况下也能够快速翻开。
  3. 怎么设置 VS Code 默许的指令行东西为 Fish? 翻开设置,搜索 shellArgs.osx,修改选项为 fish 即可。
  4. Alacritty 不支撑多 Tab 的模式,怎么支撑?有两个办法,第一个是运用 zellij或许 Tmux 插件,能够去搜索对应文档。另外一个能够自己打包,参阅这个 issue,不过假设你习气了,其实不用 tab 我觉得也还行。

六、增加多 Tab 的才能

有网友反馈 Alacritty 没有 Tab 功用不好用,我这儿运用 Tmux 玩了玩,来定制了下这个才能,不过说实话这个插件的功用实在太多了,其实我抱负的产品应该是开箱即用的,所有试着朝着极简的方向装备了下,运用体验和 Chrome 快捷键共同,最终作用可见如下:

这儿并没有运用他的分屏功用,因为我用不上,只运用的 Tab 切换以及当时记录保留功用,其实假设你便是简略实用指令行,其实上面非 Tab 的计划完全够用,假设激烈有多 Tab 需求,那能够按照如下过程来玩一玩:

# 1. 首要装置 tmux
brew install tmux
# 2. 下载tmux装备问题到本地方位
curl -fLo ~/.tmux.conf \
    https://gw.alipayobjects.com/os/k/8b/.tmux.conf
# 3. 从头替换一下 alacrittye 装备文件
curl -fLo ~/.config/alacritty/alacritty.yml --create-dir \
     https://gw.alipayobjects.com/os/k/l9/alacritty.yml

装置完结以后,能够重启一下 Alacritty,应该就默许加载了 tmux 的运转,在之前基础上补充如下快捷键:

command + t:新开标签页
command + w: 封闭标签页
command + 数字:跳转对应标签页
command + shift + [ :切换到上一个标签页
command + shift + ] :切换到下一个标签页

这儿不过多解释对应装备文件做的事情(哈哈,其实折腾了很久,因为 tmux 装备实在太杂乱了),有兴趣二次改动的能够找到官方文档进行折腾,祝你玩的高兴。