聊聊被迫从linux/Mac 迁移到windows上的感受

最近公司上了安全软件,manjaro linux不给用了,公司也不发Mac,只能换到windows了。 目前的开发环境是这样的。

  • windows11
  • 使用scoop作为包管理器 (自动注册环境变量,这点真是好评)
  • 使用powershell+on-my-posh在windows上替代 zsh+oh-my-zsh。
  • emacs 是官方提供的已经编译好的emacs29.0.92_1
  • 补全在用eglot + corfu(不像lsp-bridge那样跟手,但是也不算卡手目前,主要eglot和emacs已有的插件结合的比较好比如xref)
  • 在windows上使用vertico替代了ivy(我发现ivy在windows上似乎有性能问题, vertico的性能就要好上很多)
  • Roswell 本来就是跨平台的,如果是自己写的纯cl 的工具倒是跑着没什么问题,但是遇到需要依赖*nix环境的依赖的时候,我就无能为力了

综合用起来,只谈emacs的话,其实并没有什么痛点。我甚至感觉window上的emacs也是非常好用的。但是如果别的工具涉及到*nix依赖的时候就很难受

  • 比如之前用的软件编译需要用到*nix的环境的话,就巨难受。因为编译不过,就用不了。我遇到的是cl-protobufs需要先编译一个c++的protoc-gen-lisp的二进制插件,然后才能正常去导出protobuf的lisp代码,编译这个插件废了我好久的时间也没搞定。反而把我搞的很烦躁,还耽误了我正常的开发, 项目紧,做组长还要组员帮我分担压力。。。。。

  • vterm用不了了原因也是编译不了。只能用eshell, 定义在powershell 配置文件里面的函数,alias, 环境变量都不能在eshell里面加载到。这个应该是好解决的,不过我暂时还没心情去搞这个,忍一忍。

再谈谈对windows不爽的地方

  • 我尝试过用vcpack去管理库依赖,不过这个玩意不知道怎么回事,明明装了库了已经,但是按照官方教程还是没法被cmake识别到。。。。 真蛋疼,官方教程不管用,查了一圈谷歌也没解决 ,官方文档不管用,真够讽刺的(没发现是自己的问题前,先吐槽一遍出出气)
  • 还有那个官方自带的防病毒程序,巨讨厌,gopls一开,这玩意就疯狂检测,然后gopls加载工程就巨慢。而且这东西偶尔还莫名抽风,cpu飙得天高。也没见他防住什么病毒,反而天天想方设法的删除我下载的但是它觉得的偏门软件。只要这软件偏门,相方设法的不让你打开/直接删了。谁能告诉我怎么让这个东西从进程列表彻底消失:soccer::soccer:
  • 微软自家的那个visual studio 装完以后,不会自己注册环境变量和像linux一样去注册已经安装的库。这个巨搞笑。。。。 我还得专门开个为visual studio定制的shell。集成度太差了,脱裤子放屁的事不要老是干啊。
  • 还有多根树形的文件系统,算了这个就不吐槽了

总结

  • emacs很好,但是windows和我都有自己的脾气
  • 目前的情况的话,我是需要长时间和windows共存的了。后面的话可能会用clojure重写那个需要用到cl-protobufs的工具。
  • windows11的界面确实华丽了不少,但是因为需要兼容,做的妥协也非常的多。
  • windows对我来说不适合作为玩具去折腾,也不像*nix那么专业(对我来说)

最后大家有没有调教windows的tips传授小弟,小弟感激不尽:soccer::soccer:

5 个赞

Windows 可以跑EAF, 你应该可以用 eaf-pyqterminal 替代 vterm, eaf-pyqterminal 最近更新后已经相当成熟了。

速度非常快。

我用的是 Msys64-MingWG64 编译出来的 Emacs。 Msys64 中 pacman 搜不到 pyqt-webengine。

currently qtwebengine is only compilable on msvc not mingw-w64 yet

1 个赞

不用Windows快20年了吧, 没法帮到你。

1 个赞

个人用火绒替windows自带的WD,虽然火绒杀毒也不行,但在误报以及后台静默扫描这方面会好很多,日常使用几乎感觉不到存在

1 个赞

可以试试wsl 和 wslg,基本上和linux一样的感受

1 个赞
  • 管理库依赖可以试试 conan
  • 自带的防病毒程序可以关掉
  • visual studio 里有多套的编译环境,没办法把所有的都导入环境变量,只能自己用哪个导入哪个,在 emacs 中导入 vs 环境变量的配置可以参考: xhcoding/.emacs.d: A simple Emacs config on Windows (github.com)

Windows 确实不适合作为玩具折腾

Windows 上直接用 pip 安装,不需要用 pacman

因为 mingw64 自带了一个 python

可以用 Windows 版本的 Python,兼容性更好。

把Windows 版本的 Python 的环境变量放到 mingw64 之前就可以优先使用Windows 版本的 Python 了

谢谢。我试试看。

pip install epc 失败了。 放弃了,windows

nice啊,忘了猫大的eaf了

1 个赞

公司那个安全软件会禁止创建虚拟设备,gg

受教,受教了

我的理解是,我不咋在乎电脑中不中病毒。偷个信息啥的,不在乎(应该没有黑客会关系我什么时候点摸了个鱼吧)。但是要是卡到我了,就是大事了。

我最近是新买了个 X1 Carbon ,因为不知道硬件的支持情况,只能先用着 Windows. 我用了 WSL ,然后用 TUI 的 emacs, 因为 WSL 的一些问题,GUI 的程序现在不能配置键盘方案。

此外,windows 还有两个不爽的地方,一个是中文版在开始菜单里面就不能用英文搜软件名,除非那个软件本身的名字是英文的。另一个就是 multitask 功能非常 buggy。

1 个赞

c++开发可以试试xmake,除了他作为一个构建系统很好用,他上面的包用起来也比vcpkg体验好很多

不是自带 wsl 1/2么,都不用额外装虚拟机了,现代电脑硬件性能严重过剩,我时不时同时跑四五个虚拟机,macOS + vmware fusion 12,免费的,可惜13开始收费了。

我也十几二十年没怎么用 win 了,现在很难接受用 win 当主力桌面。

实际还是有割裂感的。