编程环境的改进 (Fedora & openSUSE + Zinit + Starship + WezTerm & Warp)

Fedora

我原本的环境是 win11 + wsl2(Ununtu22.04LTS),但后来发现 wsl 在某些时候的启动和响应速度还是会比较慢,一开始我以为是 Ubuntu 太“重”了,于是换了 Debian,但并没有立竿见影的改善。再加上 wsl 每次开启和关闭代理都要重启,以及有的软件比如终端模拟器要装在 windows 上,导致配置文件很难找,还有其他的一些不方便。种种原因结合之下,我决定还是装双系统。

其实我之前装过双系统,当时还是 Ubuntu20.04LTS 刚发布的时候,装了 Ubuntu。但当时对 Linux 并不太熟悉,在 Linux 下用着 vscode 和 idea 写代码,并没有感觉到除了配置环境外的特别的优势,后来渐渐就基本只打开 windows 了。后来换了新电脑,就没有装双系统。但现在已经发现了命令行和 vim 的魅力,Linux 已经成为了刚需。

在发行版的选择上,我很是纠结过一段时间。由于受够了 Ubuntu 的老旧的软件源以及其他一些问题,连带着我对整个 Debian 系的发行版都有一种莫名的排斥(虽然我听说 Debian 很好,但我的个人喜好就决定了我不想用这一系的发行版),而且由于我是打算把 Linux 作为主力操作系统来使用的,我也并不想使用那些相对用户没有那么多的小众一点的发行版。于是最后我的选择就只剩下了 Arch 和 Fedora。

一开始我打算装 Arch,毕竟它声明在外,ArchWiki 也真的很好。我安装时发现不能识别网卡,靠着手机 USB 共享热点装好了,然后发现后面还有着浩大的工程,要装一堆驱动,桌面系统,等等。前面我已经在 Neovim 配置,终端和 shell 的配置上折腾了很久了,现在还要花很多时间在系统上,总有种负罪感。接着我又发现我很多倾向的配置就是 Fedora 的配置,而且 Fedora 也足够新,基本会第一时间用上新技术和软件的新版本,同时相对会更加稳定,那就用 Fedora 不就行了?

于是我就装了 Fedora,然后发现安装异常简单,甚至比 Ubuntu 更加方便,驱动都不用操心,用起来也非常顺手,dnf 的软件源都很新,gnome 原装桌面就非常符合我的审美和使用习惯。最近折腾了很多工具的配置,已经多少有点心累了,这时候来了一个开箱即用而且用的很爽的系统,直接让我的好感噌嶒涨。不出意外后面应该会在 Fedora 安定一段时间了,后面再有时间精力再去折腾 Arch 和平铺窗口管理器什么的吧。

注:

  • win11 和 Linux 的双系统需要把 windows 的快速启动关掉在装 Linux,否则装好 Linux 后只要进入一次 windows,后面即使从 Linux 启动也会直接进入 windows。

  • 现在的 Linuxqq 是真的好用,几乎和 windows 下的没区别。

  • qq 音乐和腾讯会议虽然官网只提供 rpm 包,但是 Fedora 的软件商店内可以直接下载安装,同样也很好用。

  • 有的软件和使用了微软字体的文件会出现汉字显示为方块的问题,把 windows 中 C://Windows/Fonts 中的字体文件复制到 ~/.local/share/fonts/ 内就可以解决

shell 的配置

我原先使用的配置是 zsh + oh-my-zsh + powerlevel10k,但是经常会发生输入卡顿,可能是因为 oh-my-zsh 太“重量级”了。正好在 github 上看到一个轻量级的 zsh 插件管理器 Zinit,就拿来尝试了一下,效果挺不错的。可以安装 github 上的众多插件,也可以用简单的配置安装 oh-my-zsh 的插件和 library,更新也很方便,还有一些其他的功能,具体可以参考官方说明。Zinit 比 oh-my-zsh 更加灵活,速度更快,就是配置的时候会略显复杂,我还没有完全发挥它的功能。

主题我使用的是 Starship,根据官方说明安装非常方便,要启用的话在 shell 的配置文件加上一行就行,速度也非常快。

我的 .zshrc 配置在这里

WezTerm

我原先一直使用的终端模拟器是 Alacritty,后来发现了一个新的项目 WezTerm - Wez's Terminal Emulator。它与 Alacritty 在一些方面很相似,都使用 RUST 进行编写,都基于 GPU 进行加速,都支持 Windows, MacOS, Linux 三个平台。但 WezTerm 拥有更多的功能和特性,以及更强的可定制性。和 Alacritty 相比,它的文档更加全面而详细。WezTerm 的配置文件用的是 Lua,Neovim 的用户应该会觉得特别亲切。

这实际上是两个项目不同的设计思路的体现。Alacritty 设计者就表示,很多功能(比如 tab 和 split)在 Alacritty 中不会被实现,因为他们认为这是其他工具比如窗口管理器或者说终端复用器的功能,而不应该是 GUI 终端模拟器的功能。而 WezTerm 则在保证性能的基础上不吝于添加各种功能,下面是开发者 Wez 本人的一段话:

My perception of Alacritty is:

  • Hyper-focused on speed above function, with relatively minimal feature set as a result.
  • Their default disposition is to not accept features in order to maintain their performance baseline.

My philosophy/motivation for wezterm is:

  • I'm a programmer and I want a programmers terminal
  • I use multiple operating systems and I want my terminal to behave consistently across them
  • I want it to look good and feel fast for the things that matter most: interactive latency, rather than raw throughput
  • I'm sick of terminal emulation mismatches that prevent basic things like italic/underline/true color attributes from working when eg: using remote tmux + mosh, so the multiplexing feature in wezterm exists to eliminate that problem

在使用了一段时间的 WezTerm 后,我打算将 WezTerm 作为我的主力终端,这是我的配置文件。不过,需要注意的是,WezTerm 对内存的占用明显比 Alacrity 更高(但是速度上没有什么太大差别)。

配置的最终效果如下:

1
2

openSUSE Tumbleweed (2024-2-17 更新)

并没有在 Fedora 停留很久,现在改用 openSUSE Tumbleweed 了,主要是发现 Gnome 在最初的爽感后确实因为过于简洁而有一些不方便的地方,尝试 KDE Plasma 后发现用着更舒服一点,而且很喜欢 Dolphin 文件管理器。而基本上只有 openSUSE 是默认环境就是 KDE 的,尝试以下后确实在体验上比 Fedora 的 KDE 版本要好。并且 Tumbleweed 作为滚动发行版也能满足我对软件的崭新程度的要求。

用了一段时间后最大的感受是 openSUSE 在一些细节方面会更加完善,用着更加舒心,zypper 也挺好的。并且官方仓库里面有 Wezterm 的最新稳定版本(我现在超爱这个终端模拟器)让我很惊喜。不过其实本质上和 Fedora 也没有特别大的区别啦,软件都很新,都使用 rpm。openSUSE 有个超强的图形化系统管理工具 YAST,不过我倒是觉得用命令行来干也不错。至于有人提到的稳定性问题,我用几个不同发行版的时间都不是很长,都没有遇到过不稳定的情况,也无从评价。到目前为止,主流发行版我几乎都试过了,Ubuntu,Fedora,Debian,Arch,Mint,openSUSE,桌面环境也都体验过,Gnome,KDE Plasma,Xface,Cinnamon,i3wm,现在综合来看,还是 openSUSE + KDE 最符合我的口味。

3
4

Warp (2024-2-23 更新)

今天 Warp 终于发布了 Linux 版本,这是一个用 Rust 编写的终端,同样使用 GPU 加速。Warp 自称 "The terminal for the 12th century",设计非常的现代、美观,还自带了 AI 功能。之前只有 MacOS 版本,今天发布了 Linux 版本,并且 Windows 一直在开发过程中。

我第一时间体验了一下,确实美观而且功能强大。有自带的语法高亮,命令提示符主题,自动补全,自动的命令建议(fish-like autosuggestions),历史命令搜索,Vim 模式等等。Warp 有一个“工作流功能”,可以将命令作为“工作流”,指定一些变量,调用工作流时输入变量执行即可。Warp 还有团队功能,可以建立加入团队,在团队中发布、共享工作流。至于 AI 功能,在 Warp 中可以向 AI 询问应该使用什么命令,比通过搜索引擎搜索更加高效,目前看来还挺好用的。Warp: Your terminal, reimagined我第一时间体验了一下,确实美观而且功能强大。有自带的语法高亮,命令提示符主题,自动补全,自动的命令建议(fish-like autosuggestions),历史命令搜索,Vim 模式等等。Warp 有一个“工作流功能”,可以将命令作为“工作流”,指定一些变量,调用工作流时输入变量执行即可。Warp 还有团队功能,可以建立加入团队,在团队中发布、共享工作流。至于 AI 功能,在 Warp 中可以向 AI 询问应该使用什么命令,比通过搜索引擎搜索更加高效,目前看来还挺好用的。

综合来说,Warp 是一个更加现代的终端,无论是从界面和外观上看,还是从工作流、AI 等功能上来看。并且开箱即用很多诸如语法高亮、命令建议这样的在其他终端中一般需要一些时间进行配置的功能,值得尝试使用。不过,相对来说,Warp 的可配置性没有 Wezterm 和 Kitty 这样的终端这么高,而且在开始使用前要先登陆(Google 或者 Github 账号)。

5
6
7

posted @ 2024-01-23 00:10  雪中的茶  阅读(425)  评论(0编辑  收藏  举报