emacs 在 windows 下的最佳实践是什么?

我的emacs 25.3在Windows10,现在一些特殊字符无法显示,想问问您的情况

最近一段时间折腾了
原生windows, wsl+debian+emacs, msys2+native编译的emacs 最终还是觉得原生windows
使用了doom emacs的配置
启动时间依次是15s 10s 14s,不知道是不是字体的坑

原生好处除了慢, 目前用起来最方便, 日常就用org记记笔记, git, MATLAB, python, latex等等。现在策略就是开机后打开就不关了,速度还行。

wsl,很丝滑,目前的问题是输入法吧, 再就是和win的文件沟通,
输入法用的org-rime也能凑活吧, rime在中英切换目前感觉还是不太方便, 因为现在用evil-mode,感觉还是不太顺手

msys2 好像是上述两者各取优点? 但是我可能太菜了,按照文档编译emacs 28.1的exe文件有点儿问题
能正常用,比原生win丝滑,但是 --debug-init的配置总是报错,所以没继续研究下去
也是能用的,但是担心哪里会有问题,所以就回退到原生win了

3 个赞

你说的启动时间 14s 如果是从点击图标到能够使用的话,那是正常的了。 如果是 emacs-init-time ,那正常是 2s - 4s 左右,看不同的电脑性能(我的是 3.7s)。

Windows 启动慢,主要是加载文件慢,你 load-path 里面很多包的话,就更慢了。

doom-emacs的dashboard统计的时间, 感觉还是有点儿离谱的
可能是我加载的包太多了, 基本doom默认的配置,我都没怎么动,有时间把没必要包的都精简掉。设置下延迟加载
但好在虽然每次启动和加载文件都很慢,但只有一次,加载完后就正常了。现在开机就一直开着emacs,暂时先不折腾了。

本来想重新看下 benchmark的加载时间的,好像又挂了,不知道哪里的问题…

延迟加载方面,doom 应该都优化过了。估计是因为你少一些依赖,启动的时候在检查这些包。

删减一些不用的模块应该是可以提升很多的。

有一个小坑:有的同学(比如我)的windows defender的实时防护可能会在emacs启动时拦截检查,大大拖慢启动速度……可以在启动时打开任务管理器,看看有没有antimalware service executable蹦出来qwq

也可能因为我的情况比较特殊,用的winserver哈哈 :joy:

这个微软的杀毒,我都不知道怎么关闭它。编译emacs 的时候也会不停地扫描刚生成的文件,占用大量 CPU资源。

在设置里面把“实时防护”暂时关一下就行了。

好,谢谢。回头去看看怎么设置。

一个选项,勾选掉就可以了。应该可以直接搜到。

或者可以考虑装个其他杀毒软件,例如火绒,作为吉祥物,windows defender会自动关闭。

找到了,谢谢。

以前是用公司买的 eset杀毒,后来懒得用第三方了。

1 个赞

这样关的话,重启或者过一个扫描周期(默认是一天)后它会自动重新打开。真正关掉的话得打开组策略编辑器(win+r gpedit.msc),在系统的windows管理→microsoft防病毒下找到关闭defender的策略,设为启用;这时候还不行,得进病毒和威胁防护的设置里,把下面的防恶意软件篡改关掉,再翻上去就会发现实时防护被系统关上并锁住了qwq……

ps:其实defender还是可以的,不整个关掉也行,可以只在组策略microsoft防病毒→实时防护里把“关闭实时防护”打开,进程扫描也会暂停。理论来说只把进程扫描关掉应该也行,但我为了图省事就全关了 :rofl:

原来是这样,我之前就是进组策略关闭,一点用都没有 :grinning_face_with_smiling_eyes:

不过我测试了下,关闭这个选项对 Emacs 启动并没影响。所以,我还是只在编译 Emacs 的时候关闭它就好了。毕竟在 Windows 下编译一次 native-comp + FULL-AOT 要30 分钟(渣电脑)

1 个赞

可能因为我系统特殊,不幸中招哈哈 :rofl:

我基本放弃自己编emacs了,12年的小本,当初用mac时编一次得要一顿晚饭+一个晚自习,算下来有一个多小时 :joy: 同是天涯沦落人

1 个赞

你在windows下怎么安装doom-emacs的,我也想在windows下安装,尝试一次失败了,能详细告诉或者发个参考的吗?

以windows版本emacs为例子 具体参考的

零秒精通Emacs之Windows10上畅行无碍地使用emacs的11步骤

Windows - doom-emacs

  1. 配置环境变量 要配置一下环境变量 HOME
    然后添加如下 Path 如下:
    如果 HOME 为 C:\Users\USERNAME
    Path 添加 C:\Users\USERNAME.emacs.d\bin
  2. 安装git
  3. 安装emacs
    a. 通过ftp直接下载
    https://ftp.gnu.org/gnu/emacs/windows/
    我现在用的最新emacs-28, 但是doom的作者推荐emacs-27, 等后续更新
    27版本可以直接用它:
    https://ftp.gnu.org/gnu/emacs/windows/emacs-27/emacs-27.2-x86_64.zip
    b. chocolatey 或者scoop: 例如用choco
 choco install emacs
  1. 安装辅助包 这里我用的choco, 用它安装了ripgrep fd llvm 这样比较省心
choco install ripgrep fd llvm
  1. 设置代理, 最好有代理, 没代理, straight下载不动, 或者用参考这个 doom emacs如何配置elpa源 - Emacs-general - Emacs China (emacs-china.org)
    a. 打开代理, 然后去Internet选项查看端口
    b. 设置git代理, 端口号根据实际情况填写
      git config --global https.proxy 127.0.0.1:9999
      git config --global http.proxy 127.0.0.1:9999
  1. 下载Doom
   git clone --depth 1 https://github.com/hlissner/doom-emacs C:/Users/USERNAME/.emacs.d
   doom install

等安装完毕然后

   doom sync
  1. 打开后会有乱码
    按Alt-x, 输入 all-the-icons-install-fonts, 然后就会下载字体, 下载完后, 你去对应文件夹找到字体文件, 安装一下就行.

基本就这样,操作步骤都是一样的,最好还是看你具体报错再讨论

2 个赞

卧槽,真是太麻烦了……

……请自动把这句话脑内替换为“点击下方链接下载” :joy:

1 个赞

直接上vim或者vscode吧,win下用这两个相当省事