从 mac 迁移到 linux 还是 windows?

动机: 我们所太 sb, 在检查期间 (2 周) 内不能带自己的电脑, 只能用所里配的电脑, 是一台 windows 电脑. 想到要和我的 mac 分离, 我就感觉难以想象. 我有这样几个选择:

  • 以 linux 作为主力系统, 我再重装 linux 系统, 如果装我肯定装 ubuntu
  • 以 windows 为主力系统, 用 WSL

在新的平台下还是要用 emacs.

windows 和 linux 对我来说优缺点都很明显:

  • linux, 优点很明显, emacs 友好, 各种工具安装, 运行也非常友好, 缺点是应用不太丰富.
  • windows, 应用很丰富, windows 有 WSL, 但如果追求文件 I/O 的效率, 就得把文件保存在 windows 文件系统上. 我不会 .NET, powershell 也不太会, 我只熟悉 unix 下的工具, 操作原生的 windows 文件系统, 我不知道会有多大的困难, 能否像之前在 mac 上那么丝滑.

我其实不太想用 windows WSL 来运行 emacs, 因为我担心 I/O 性能. 比如我经常用 org-ql, 它一次要打开好几百个文件. 再比如我经常用 yasnippet, 它是大量的小文件.

关于 windows native emacs, 我想问问会有多大困难? 比如说, 我的文件链接都是 [[file:../vx_attachments/man_zsh_typeset.txt]] 这样的, emacs 能正确打开这样的链接么? 我听到有人说 magit 性能差的问题, 我感觉这个我可以接受, 我用 magit 但并不重度, 一天几次大概. vterm 我用得很多, 如果 vterm 能通过 wsl 运行 linux 那就完全没问题. 请问 windows native emacs 还有哪些坑?

其实我倒也不需要多丰富的应用, 但有这样几个应用是我特别需要的:

  • pdf 索引软件, 能快速查找到包含某一个关键词的 pdf
  • pdf 阅读软件, 希望有标注能力以及快速搜索能力
  • 剪切板管理软件, 最好能提供与 alfred 类似的体验, 非常丝滑

如果只用 emacs 看代码,写代码,windows native emacs 完全没问题
我的配置 GitHub - heheda123123/emacs.d ,emacs用最新commit编译,不带nativecomp
我几乎不用 orgmode,也不用emacs干其他的事情,得看看其他人咋说了

感觉主要是有没有对 Windows 独占软件的需要,以及 Windows 独占软件能不能被 mac 满足的问题

若没有独占软件或独占软件可被 Mac 满足,感觉直接 Linux 即可

否则还是留着 Windows 吧,以及检查期间也可以不去所里

linux + eaf-pdf-viewer + blink-search +kill-ring-search 完全满足你的要求。

1 个赞

Windows Terminal + Scoop + Elvish 其实大体上可以替代Linux上面命令行那种体验

然后Linux的话,可以用虚拟机,也可以用服务器,还可以WSL。我会选择Windows。

1 个赞

wsl2里跑emacs,文件都放wsl2里,不要放win下面,就没有性能问题了。缺点就是总有时候想在win下访问那些放了在wsl2里的东西,批量进行的时候就会明显感觉很慢了

能有给单位电脑安装linux的权利实在是太幸福了,装linux吧,不用考虑。

所有的在 native win 下的方案都只能是蹩脚的模拟 unix 体验,如果你有装linux的权利,不需要考虑这些折中方案。

至于 wsl,wsl 的体验还可以,如果是用一些非交互式的终端工具还是很不错的,文件读写性能不是太大的问题,把代码和 org 文件都放在 wsl 的文件系统里就行了。我的电脑打开 wsl 的 emacs (0.25秒)比在 mac(0.36秒) 上还快。包括用 native windows 偶尔直接打开 wsl 的不是太大的文件其实也不会卡,频繁的读写肯定不行。

但是和 mac 和 native linux 比较还是有缺陷。以下是主要的两点痛苦:

首先 wsl gui app 有 bug,主要是会经常性的最小化以后就不能重新打开窗口,还包括没有输入法。

其次如果需要使用交互式的终端 app,比如 vim neovim emacs-nw tmux 等,windows 的 伪终端实现 (conpty) 并不健壮,会有各种各样的 bug,前段时间 nerd font 升级到 v3 的时候直接导致 tty 各种字符显示不正常,直到后来才修复了这个 bug。其次我还遇到过 conpty 在使用 zsh fzf 的时候 有难以复现的 bug 导致整个 shell 进程直接闪退。而且这个 conpty 是只要在 windows 上使用终端 不管是 native win 还是 wsl 或者 ssh 都无法避开的,健壮性非常不足。

4 个赞

msys64 emacs 有一堆 linux 工具,够用了。

我只熟悉 unix 下的工具

都这样了,肯定linux啊,推荐archlinux,紧跟技术前沿

win下应该没办法用vterm吧,除非wls跑emacs

嗯嗯, 我也是选了这种做法