已经不用 completion
好久了。emacs 搜索 就够了。感觉提示框那跳来跳去的 烦人
感觉emacs入门难的人,肯定会选用适合他自身的工具,毕竟还是要干活吃饭的。
这个问题举个生活中的例子吧。其实现在人大多都可以每天在外面吃饭,没必要自己回家弄饭吃。上了班又累回家做饭又耽搁时间,又要切肉又要自己洗菜还要摆碗筷。出去想吃都有,这些人家都给你弄好了,然后直接送到你面前只需要拿着筷子吃就可以了。用 Emacs 就是那群在家做饭吃的人,问这问题的就是抛弃 Emacs 的人。
选择它还是放弃它都只在乎你自己,简单做自己就好。不为难自己,不为难他人。
Emacs 就算不当生产工具,当个玩具 没事玩玩,也是不错的。而且玩着玩着你可能会发现,随着自己越来越熟悉Emacs,很多好东西其他编辑器都找不到,或者说还做的不够好(例如 magit, dired)。
当然Emacs的确有些功能可能没有其他IDE那么好。本来都是工具,又没有排他条款,没人规定用了vscode,就要放弃Emacs的呀。
(个人感觉什么事情都想从Emacs里找到对应的解决方案,这应该也算是一种执念,未必可取。)
就像常见的发烧友, 个人觉得emacs有点像各行各业的发烧产品, 不是必须的东西, 全凭爱好
在特定领域,比如JavaScript、C++等语言,VSCode 和 IDEA 的IDE有无与伦比的优势,开箱即用,交互友好。
如果真的只是拿流行语言去工作和快乐生活,真的,VSCode 要比 Emacs 好很多,补全流畅,啥都有。
Eclipse、IDEA、VSCode、VIM我都严肃的用过(当然没有Emacs用的多),用过之后仍然选择Emacs的理由:
- 如果你学习十几门编程语言的情况下,VSCode/IDEA 这些对非主流的编程语言的支持几乎是处于贫瘠的边缘
- Emacs的生产力在于整体作战的能力,虽然语法补全依然很渣,但是在 dired、magit、ripgrep等方面几乎是无敌的,因为没有别的编辑器或者IDE会像这样设计软件和全键盘操作
- Emacs写插件的知识门槛很高,但是一旦你学会Elisp,你会发现你很快乐的就实现你想要的插件效果,在你收集高手的插件加上自己写插件,你会发现自己的编程环境简直舒服的无与伦比。VSCode/IDEA需要考虑大众程序员的习惯,所以会在交互设计和超高生产力上会做取舍和平衡,但是你在Emacs中,你可以完全不受商业公司的影响,只要你自己肯钻研,你的生产力会越来越高,打个比方, VSCode是初始速度非常快的性感跑车,Emacs就是一个老爷车,但是它的加速度会持续几十年,你越用越顺手,最终速度会比IDE快很多。
当然,最后每个人都有自己的选择,不必为放弃Emacs感到…,喜欢啥就用啥。
emacs胜在"系统思维和系统能力"这点超赞同, 文中提到的三个工具,
-
dired, 没有用过, C-x C-f, treemacs, M-! shell完全满足日常的应用, 看到很多资深用户提到dired这个工具, 请教他比以上以上三个工具的方便之处是什么? 想试用一下, 看文档吓死人
-
magit, 花了半天时间看了文档, 现在用的只有status这一个, 个人认为原生的git更好的原因是, 遇到问题可以在更大的范围内搜索解决方案, 但是magit遇到问题, 寻找解决方案的圈子比较窄,
-
ripgrep第一次听说, 现在内置grep, grep-replace够用.
坚持下去就像把中国汉服文化坚持下去一样,对古老的敬畏。
- 有GUI用为啥要用命令,按
^
RET
这些键不必敲cd强?dired里用!
也是执行shell命令。同理为什么用magit,magit-status里可以按$
看magit执行了什么命令。
我觉得dired和magit都是对着传统操作的痛处去解决问题的,如果你觉得传统操作无痛,那这两货并没有什么卵用。另外文档是当字典查的,不如看其他的入门教程(比如山人的21天spacemacs)
- ripgrep是更快的grep,emacs里面的那个grep和grep命令没什么大关系
感谢, 这周看完子龙山人的视频.
P.S. 你提到的emacs中的grep与coreutils中的grep没有多大关系, 怎么理解?
grep --color -nH -e #调用grep出来的的是这一行
因为他恰好调用的是grep,你也可以改成调用ripgrep,毕竟ripgrep和grep的命令行参数是相同的
你这个叫 flx matching,company-lsp
已经实现了。
这个看起只是普通的 fuzzy match, 好像跟IDEA这个功能不是一个级别的
IDEA 在特性上尤其是针对 Java 的各种功能上肯定是顶级的。
如果你只写 Java,或者写 Java 的时候有很高的补全或者智能提示要求,用 IDEA 就对了。不要犹豫。
我不觉得有多少区别,只要能从补全后端获得变量和所有对应方法必然就能实现。不过我对 Java 补全后端不熟。
最直接的办法,用 lsp 调用 IntelliJ
试过 IntelliJ,但很可惜我不写 JVM 语言。给我很深刻的印象是编程语言的高亮和语法检查是由定义语法后自动生成的,Emacs 还停留在用正则的时代,不仅如此,从整体来看 Emacs 缺乏任何能称得上高层的编程界面。而且不要见 Lisp 给吹爆,在我这个用 Common Lisp 来看 Emacs Lisp 是真的垃圾,缺少一个应用成熟的语言该有的东西。
Emacs 还没死的原因在于 lsp 拉进了和成熟 IDE 的差距,和现有的生态虽然基于一个不怎么样的设计但足够成熟,以及这世上其实没几个人知道一个像样的编辑器是该如何,但 RMS 是少数真正知道这个的人,所以不至于埋没在众多所谓编辑器之中。而那些做 IDE 工具的人是完全不懂该怎么设计编辑器的。
哈哈, 好比喻, 我也喜欢做饭, 怪不得也喜欢emacs~
emmm…我觉得你这样的回复如果是在知乎可能会引战