2025年了,谁还和我一样在cygwin下用console的emacs?

最近工作原因主力开发环境在windows上(好吧其实还有一个原因是为了玩游戏),过去一直mac/linux/windows来回切换折腾用。

Windows下不堪忍受官方窗口版的很多命令不支持(貌似是基于msys2的?),果断放弃msys2/mingw(删干净依赖,不然会有类库污染),从头用cygwin+mintty来运行emacs29。目前发现最大的问题是clang只能用到8(编译vterm依赖的时候果断切到了gcc,竟然编过了还能正常用)。

很多依赖窗口的功能自然不能用了,好在我主要在emacs中编辑文本和orgmode。不知道Windows下放弃cygwin的朋友们踩到什么坑,我也好预警。

蛇年新春快乐!

补充一下,去年换了arm版的Mac,简直一坨答辩,增强了我用回windows的信念。在console下用是因为我对linux比较熟悉,以及长期在ssh下工作的缘故。

1 个赞

TUI吞org-mode按键,我用GUI

官方窗口版大概有哪些指令不支持?俺 win 下 gui 用 scoop 第三方库安装的(kiennq),没遇到啥 bug,最大的问题就是慢,用 -nw 也慢

所以我在公司是 gui emacs 和 tui nvim 混用,nvim 插件勉强可以模拟 edit-specialrefilecapture 之类的东西

最大的问题是bash要找替代,我不用eshell,有时候命令会用compile执行,也用ctrl+z切console,windows的local下(非ssh),大部分shell都没法和bash/zsh比,因为我的tui用法是最大可能完全模拟linux环境使用,不是用emacs实现跨平台,还是很依赖linux生态链的(比如编译的时候os识别为linux系,include unistd.h不能报错之类,所以我研究了一段时间,最终停留在cygwin上。所以问题不在emacs,而是msys2和mingw不能满足linux生态链。

另一个是tramp,因为win下配起来太折腾了,导致我到现在都没怎么用tramp,改用ssh+tui,大不了多开几个console。

可以wsl吧?或者ssh上去 但只有wsl好一点

cmd 都不会用怎么还能吹 windows

Windows 上我用自个 fork 的 用 PC-DCL 替代 cmd, 自个日用的 macOS 上 elvish 0.18 简易评测, BSD 上用 ksh,DOS 上用 cmd,Plan9 用 rc,OpenVMS 上用正宗 DCL,MIT ITS 上用 DDT,根本不用 zsh。

在 Windows feature 里装了 OpenSSH Client 就能直接用,根本不折腾 (用 MSYS2 的话),wsl 的 unix shell 里也一样可以调用 windows 的 ssh.exe

这么整半天还是不如用 wsl,除非你打的游戏在开了 hypervisor 的 windows 里跑会崩,不然没理由不用 wsl2

不用嫌 wsl2 装的 Linux 大,用 Void Linux 之类的轻量 distro,200MB 的 roofs 就能开用。

1 个赞

@milowhisper 这是实话,没必要在 win 原生寻求 unix like,除非你像我一样又得用 win 又因为这样那样的原因不能虚拟化

考虑到你还要用它打游戏,应该是你自己的设备,那虚拟化显然是可以搞的

1 个赞
;; bash in windows
(when (file-exists-p "C:/Program Files/Git/usr/bin")
  (setenv "PATH"
		  (concat
		   "C:\\Program Files\\Git\\usr\\bin" ";"
		   (getenv "PATH")))
  (setq explicit-shell-file-name
		"C:/Program Files/Git/bin/bash.exe")
  (setq shell-file-name explicit-shell-file-name)
  (setq explicit-bash.exe-args '("--login" "-i"))
  nil)

这么设compile和M-x shell都可以用上git-bash,但我更多用eshell

-*- mode: compilation; default-directory: "~/" -*-
Compilation started at Mon Jan 27 15:47:37

$PWD
/usr/bin/bash: line 1: /c/Users/hampus/config: Is a directory

tramp我宁愿在wsl里跑。 不过native开发用native的emacs还是有必要的

现在我用gwsl,非常顺畅,以前我用cygwin,启动emacs非常慢,

最新的wsl on windows 10 支持显示图形界面了

我一直用cygwin下的emacs-w32,原生的windows emacs窗口。除了有点慢,其他还挺好的。