在考虑要不要转向 kakoune。。。。
为啥嘞
kakoune 内置的多光标,内置异步补全,内置的和 tmux 交互,能包管理器直接装的 lsp 支持。
emacs 这些东西也都可以有,但是卡。特别是补全的时候打字不顺的这个感觉,实在是太难受了。
大佬试试用Nox进行lsp补全啊,我用Nox一点不卡顿。其他编辑器没有elisp的无限扩展性,感觉缺少点灵魂
感觉 company 弹窗的时候就是单线程的会卡一下。在 kakoune 里面这个感觉丝般顺滑,不说 lsp ,就是补 emacs-lisp 都有明显的差距。
company-idle-delay 的值设为 0 试试
莫非是我开了什么影响性能的东西吗?
估计是的,也许是company的候选太多了,才造成卡顿。我这边开了TabNine,Yasnipet 都是瞬间弹出候选菜单。
同感,只要自己不过于折腾,emacs能完成对自己而言很好的工作,善于总结自己的问题,不断提升emacs的熟练度,eamcs就能更好地服务自己
跟楼主一样。 18年放弃的。 断断续续使用了两年。 带来的麻烦远大于效率。 想当初,配置出自动补全都高兴的一批。 然后学习lisp,各种魔改。
结果,就是我在折腾,别人在刷算法题。我在折腾,别人在做各种项目比赛,拿奖拿到手软。同样做项目,因为折腾编辑器,进度就是跟不上别人。
而且,而一个编辑器折腾再好 也不可能写在简历上。
现在写文档用“语雀”, 做图像处理使用clion+matlab。偶尔打开其他各种类型文件使用vscode。 远程连接服务器修改配置文件使用emacs,要远程写代码使用vscode + remote 插件。 腾出来的时间刷刷算法,学习尤克里里。陪陪女友。 让工具做工具的事。 时间太宝贵了。
Emacs 对于我来说就是文本编辑器,折腾范围仅限于把它变成一个舒适的修改文本的编辑器,写写文档、博客、文章、偶尔写写脚本就足够了。
Emacs 相较其他编辑器来说,更容易变成自己想要的样子。我对她要求不高,她也会做好自己的工作。我觉得她能陪我一辈子。
配置的话就以 Doom Emacs 为基础就蛮好了。
专业的工作我选择交给 JetBrains 这类的工具去做。
非常同意!Doom Emacs 的作者也是这么说的
路线对的话很快就掌握Emacs,即使是编辑器和IDE基础为零,认真学三天也够了。这三天一半的时间学Vim/VSCode/IntelliJ,剩下的一半时间学Emacs和LIsp
关键是重点放在文本文件操作改善工作流,不要在无关细节上斤斤计较。
比如使用第三方成熟配置 GitHub - redguardtoo/emacs.d: Fast and robust Emacs setup. ,那么安装插件就不用学了。
项目用git的话, counse-git
找文件 ,counsel-git-grep
搜文本,cousel-git-grep
和wgrep
结合可以高效地全项目改文本。就以上三板斧掌握,速度已可以秒杀IDE和其他编辑器的。开箱即用,什么都不用配置。
只要做真实世界的项目,如果你对自己要求是高级程序员水准,命令行必须熟。这点无论你用何工具,用何语言,都是最终必须面对的。Emacs的社区文化是一开始就把命令行的细节暴露给用户。可能使用还是开箱即用,但是文档里会把细节都写上。对初级程序员来说心理压力比较大。我建议到tldp.org上找本命令行和shell的教程学一下。
代码自动完成和代码自动导航我推荐基于ctags的方案,缺点当然是智能程度不高。但是速度快,支持正则表达式定制,通吃所有语言。在我眼里优点远远压倒了缺点。
不要低估Emacs在文本操作上的强大。以代码自动完成来说,·company-mode
是最主流的。但是Emacs的hippie-expand
和evil自带的词和行的自动完成也可以同时用。
IDE当然更智能,比如输入class instance,class method就可以作为自动完成的候选项目列出来。但是Emacs可以在更高层面解决问题。在真实的大项目中,很可能相似代码早已被别人写过,所以只要能高效地搜索并“引用”别人的代码就就行了。
比如
myarray.sort((customer1, customer2) => {
return customer1.age - customer2.age;
});
IDE可以在你输入myarray后提示sort
的详细信息。但你还是要实现customer1和customer2比较的具体逻辑(也许是比较customer的年龄,也许是比较customer的消费金额 …).
我用Emacs的插件eacl可以自动完成代码段(输入sort
启动自动完成,然后可以输入customer或者age在现有代码中进一步过滤,按回车代码就被借用过来了)。这个插件我发觉非常有用,项目越大效果越明显。
所有这些插件都可以当作API集合做二次开发。
就以上几个插件,已可以应付绝大多数的项目,效率也非常高。你可以对自己说“到此为止了,我再也不想学新插件了”。
Emacs是自由的,你完全可以选择适合自己的更轻松的路线。
Emacs 在打字和补全的时候卡可能和 GC 有关系,我把 GC 阈值调得很高,然后设置无操作一秒和定时 几分钟 GC,现在缓解了很多
我可能比较特殊,用了快二十年 Emacs,没用 elisp 写过一点东西,除了配置,一个原则是不折腾,有什么用什么,简单配置一下就可以了。就是一个工具,我几乎所有的东西都在 emacs 里编辑,写程序是主要工作,有限的自动补全也照样能做好工作,文字主要是 AsciiDoc,记录各种东西。可能就是低欲望 emacs 用户吧 :),主要还是用工具的人,工具就是工具啊,除非变成了专职改进工具的人。
佩服,用Emacs这么久了居然没有折腾的欲望
这样的群体或许还不少,我认识的用emacs的教授(不少于五个),写demo都是打开emacs来写,emacs是很原始的模样,但是他们用了都十来年二十来年了了
哈哈,和我前老板一样,MIT那帮人喜欢用很纯净的Emacs。在我给他安利很多包之前,他裸Emacs用的几十年,他说一直维持他博士时Emacs的样子,他博士时候,博士时候
写Demo还好吧,而且内置包也基本够用。如果他自己平时什么包都不用那就是习惯使然了,比如当年跟很多人一起开发用Ultra Edit 写C++代码的情景,那是历历在目 ~~~
关键是,逛这个论坛的居然一点都不折腾下,难得难得啊