- terminal: (emacs-init-time) “0.018478 seconds”
- graphic: (emacs-init-time) “0.54878 seconds”
这个对文件操作更细了 高级用户肯定喜欢。不过,使用起来会不会更复杂了?
是的,文件导向是稍复杂点,use-package是声明式(declarative)的, 看起来非常直观。直观、控制、速度这3个因素所要权衡,我倾向控制和速度,对于直观因素采用粗线条的声明式。
wsl下面15秒,换回ubuntu同样的配置只要4.361932939 seconds
我以为我的三十秒已经很逆天了, 没想到楼上还有几百秒的, tql
另外提一嘴, (emacs-init-time)
算出来的时间是严重偏小的, 建议用
(add-hook 'window-setup-hook
(lambda ()
...
(time-to-seconds (time-since before-init-time))
...))
追求更准确的数值, 可以放到 post-command-hook
里.
Benchmark results
╼►[benchmark-init/root nil 2802ms]
c:/Program Files/Emacs $ (emacs-init-time)
4.654654 seconds
(emacs-init-time)
"0.799631 seconds"
;; Emacs Startup Times: init:0.343 total:0.636 gc-done:2
“GNU Emacs 29.1.50 (build 1, aarch64-apple-darwin22.6.0, NS appkit-2299.70 Version 13.5.1 (Build 22G90)) of 2023-09-07”
使用emacs-init-time,是1.536
使用前面的window-setup-hook,是4.430
- 都在谈启动, 我想问下 退出
- 打开后, 什么都不做, 退出都卡死, 要再次手动 c-x c-c (终端中不会)
- 如果不再次 手动, 要 近 3分钟 才退出
- 这是升级 29后, 才出现的, 不知是那个的配置的原因
调试, 只会 简单的 emacs --debug-init, 退出? 怎么调试, 这就肯不会了
一直想要问, 中间也试过 去除几个配置, 但没用那位 高手 给个思路! 大部份是 抄这里的 配置
以前 emacs-rime 在 emacs29 的时候会出现类似问题,现在应该修复了。你可以看看 kill-emacs-hook
都挂了哪些东西
按照您说的, 现在是这样的, 确认是 rime
- 如果打开 emasc, 不调用 输入法, 做一些 删除保存动作, 就很 顺利的退出了
- 如果打开 emasc, 调用 输入法, 打几个字后, 再保存退出, 就会有卡死现象了
但不知道 是不是 那配错了, 能帮看看 配置?
(use-package rime
:ensure t
:init
(setq rime-user-data-dir "~/.local/share/fcitx5/rime") ; 自用的五笔词库
:custom
(default-input-method "rime"))
;; 随着 输入法的 不同, 鼠标 会变成 不同的 顔色
(defun zzf-rime-current-status-of-chinese-or-english()
(unless (string-equal major-mode "dired-mode")
(if (string-equal current-input-method "rime")
(set-cursor-color "orange")
(set-cursor-color "#21BDFF"))))
;; 切换 输入法
(defun zzf-toggle-input-method ()
(interactive)
(toggle-input-method)
(zzf-rime-current-status-of-chinese-or-english))
;;只用单键, F12 笔计本, 来映射 左边的 alt 键
;; 只用单键 台式机, .Xmodmap 来映射 AppKey 键, 右手掌 约小鱼际 处
;; keycode 135 = F12 NoSymbol NoSymbol NoSymbol
(global-set-key (kbd "<f12>") 'zzf-toggle-input-method)
(global-set-key (kbd "C-S-SPC") 'zzf-toggle-input-method)
;; emacs-china 抄的
(define-key rime-active-mode-map (kbd "RET") 'rime--return)
;; emacs-china 问的, 在 rime, 中文 输入时, 回车清屏, 必须做成 cmd 方式
(defun rime--return () (interactive) (rime--escape))
rime 也是 新的包啊?
忘记具体细节了,你可以试试下面这段代码:
(add-hook 'kill-emacs-hook (lambda ()
(ignore-errors (rime-lib-finalize))))
我用的是 archlinux, 当有次 pacman -Syu 后, emacs 就到 29了, 一直就有这个问题, 好像近 个把月了
非IT人, 怕描述不清楚, 不太好问, 开个贴子, 更不会写标题了, 这次看到这个 标题, 想着 来个
取反
真的解决了, 太好了, 就是这个问题, 多谢了!
大约 不到 3秒, 就可以关了
我用的也是 arch ,最近不需要这行代码就可以正常关闭,我以为这个 bug 已经修复了。
(emacs-init-time)
我也是在 0.45 秒上下