多谢!!!紫薯布丁。 我一直在github上关注你。
我现在的配置就是基于你的配置大幅度的魔改出来的,
使用起来的体验,诚实地说在大部分方面比vim慢,
我的vim也可以算是重型配置,lsp+tag管理+各类编辑插件(surround,matchit),拼写检查等. 但很少遇到ui卡住,也不会有第一次使用到某个插件的时候整个emacs卡死一秒的遭遇.
如果是内嵌luajit的nvim,多用些lua插件可能会更快…
以下是我用的一些插件
- gutentags
- gutentags_plus,
- 非常厉害的fuzzy search
- pop shell
- lsp+spellcheck
- surround,matchit等全家桶(这几个都没emacs port使用的舒服)
emacs现在在ui(vim的popwin)和速度方面(异步和多线程都有些问题)现在都有些微妙的掉队,但hack emacs比hack vim确实好玩很多, more than editor.
建议自己尝试配置emacs,不然想定制的时候,你都不知道在哪里配置。像doom的配置就有点复杂。evil的配置很简单,use-package后再稍微配置一下就ok。
另外,相同的机器,装win10和黑苹果,linux是在win10上的virtualbox虚机里。linux和mac下,emacs的启动是秒开,只要1秒左右。win10至少4秒。我大概加载90个package。
(use-package evil
:ensure t
:defer 1
:preface
(setq evil-want-visual-char-semi-exclusive t
evil-echo-state t
evil-ex-search-vim-style-regexp t
;; foo-bar vim认为就是一个word,emacs会认为是2个
evil-symbol-word-search t
)
:config
(evil-mode 1)
(eval-after-load 'ggtags
'(progn
(evil-make-overriding-map ggtags-mode-map 'normal)
;; force update evil keymaps after ggtags-mode loaded
(add-hook 'ggtags-mode-hook #'evil-normalize-keymaps)))
;; 使用isearch时,增加search结束后的,高亮时间到30s
(setq evil-flash-delay 30)
;; evil keymap
(define-key evil-normal-state-map "go" 'goto-char)
)
;; homepage: https://github.com/redguardtoo/evil-matchit
(use-package evil-matchit
:hook (prog-mode . turn-on-evil-matchit-mode)
)
;; doc: Comment/uncomment lines efficiently. Like Nerd Commenter in Vim
;; homepage: https://github.com/redguardtoo/evil-nerd-commenter
(use-package evil-nerd-commenter
:defer t
:config
(evilnc-default-hotkeys t)
)
-
nvim是不错,速度很快,不过我代码写得少,用得不多。
-
emacs的字体配置比vim好很多,可以中英文用不同的。
vim 也是可以中英文设置不同的字体。
vim现在用的少,真不知道啊。
lsp 我嫌太慢了,之前试过几次。因为我是javascript开发,所以ctags也够用了。
拼写检查和语法检查也是用我自己写的插件,性能控制得很好。
语法检查Vim的syntastic插件我用过,非常卡。我曾是Vim用户,但没精力同时优化Vim和Emacs了。
Emacs我维持在200多个插件,启动和运行速度都不错。
现在我用自己开发的lazyflymake语法检查,性能和灵活性我很满意。我还在测试lazyflymake,还有一些bug要修,所以默认最优模式没有启动。
关键还是要要测量自己的工作流,不断写Emacs Lisp优化。很多人Emacs Lisp知识是丰富的,但是没有集中火力在测量和优化工作流。
我的配置在javascript和web编程上是优化得很厉害的,但是python和c++就是及格水平,因为我找不到python和C++工作。
Emacs丰富的API和Lisp的灵活性使得我可以针对我自己需求优化到极致。但是要搞出一套配置来对每个程序员都最优我觉得是不可能的。
比如我的代码自动完成是用company-ctags,有一套自己的算法和策略,即使项目大到Linux Kernel这样50000+个文件,自动完成速度也是快如闪电。但是company-mode的其他backend我就不懂了。如你用我的配置,但后端是company-gtags或者company-etags而特别卡,就和我没关系了。因为其他后端我就没怎么用过。
就是我自己在同一个项目里也是有选择的优化配置,之前几个月主要做项目的typescript部分,所以我勉强把typescript配置调整到及格的水平。但是现在和未来几个月都是用javascript写后端,所以我对typescript的配置都已停滞了。
谢谢大家这么热情的回复我了,您们的建议我都收到了,我会再去看看elisp,然后尝试一下大佬们的配置框架的
为什么要加快呢?!Emacs原本的启动就非常快了,emacs -Q
如果认为慢那一定是使用了不知所谓的配置,是否优化了工作流先不谈,代码有没有编译,有没有使用编译期优化,有没有使用运行期优化。这有个开箱即用的配置,是不是最快的我不确定,但是比doom是要快一个量级的,More Reasonable Emacs
看下文档跑起来再来讨论Emacs是快还是慢。
单说启动的话,是doom-emacs最快,日常使用的话,你的和Centaur速度都很快,均快于doom-emac。
启动慢,只要开一次不关上就好了, 可以参考这个视频
可是我要测试我的emacs配置文件啊,就写完经常要重新启动啥的,我还是个新手
大家的垃圾回收阀值是怎么设置的啊
调试可以通过load-file的方式进行。不一定非要重新启动。(我之前也总是重新启动,我甚至还安装了一个重新启动Emacs的插件,但后来发现没有必要。)
修改配置后最好不要重启emacs,可能load-file调试与重新启动emacs效果不一致,那就在开一个emacs实例,然后在把刚开的emacs实例关掉.
改了配置文件后重启当前emacs调试这个感觉很糟糕,万一配置文件那没改好,结果配置文件无法正常加载,要在接近emacs -q的状态下使用emacs把配置改好在启动,这个给我的感受是有点"一夜回到解放前"的感觉
楼主电脑什么系统?系统的关系很大,我同样一份配置文件(没有使用懒加载)在win10下启动需要28~33秒,在虚拟机FreeBSD系统需要2秒左右,在虚拟机openSUSE系统需要1点几秒,这里说的启动时间都是Dashboard显示的时间,可以的话换到Linux下用吧(我的win10系统还是固态硬盘,虚拟机都是在机械硬盘,这个速度差别太大了 )
emacs日常崩溃
建议使用emacs27+默认就有的功能 pdumper