Emacs好长时间都没有一个像样的包管理器是什么原因?
另外 package.el 和 melpa 没有办法安装指定版本的包吗?
https://emacs-china.org/t/topic/4167
由于 melpa 滚动更新的性质,与 spacemacs 提供一个稳定版的努力(master branch)完全相悖
不知道为什么收到很多像「不用就完事了/Emacs是给高手用的/Emacs就是用来折腾的」之类的回复,我提出这个问题是想让大家讨论思考一下这些BUG的根源在哪。我VIM和Emacs都用了很长时间,自以为不算小白,我不知道Emacs/VIM有什么高级的,各位都会编程,写几行编辑器的配置代码有什么高级的?当一个开发框架需要折腾时、写一堆面条配置代码而不懂CoC时、配置文件冲突时、抛一些莫名其妙的BUG时,你们还会继续吹捧这个框架吗?
题外话:
已经基本搞清楚问题,根本问题出在Emacs25身上,不是Spacemacs的BUG,虽然Spacemacs也有问题,它没有检查package-install 是否成功,没有提供对应的错误信息。Spacemacs开发人员对于一堆类似的issues都当成elpa暂时挂了处理
下面是原文:
安装Spacemacs问题太多,搞了一天都没搞成功。比如下载失败它就不知道回滚吗?Github上好多Issues都是「Cannot open load file, No such file or directory」,重启100次都不行,开发人员不管,都说elpa挂了直接Close。
我设置了代理也不行。我已经设置过SOCKS5代理了,我的设置不对吗?
(setq url-proxy-services
'(("no_proxy" . "^\\(localhost\\|10.*\\)")
("http" . "127.0.0.1:1081")
("https" . "127.0.0.1:1081")))
我已经设置过代理了
肯定不只是因为墙:Github 上面一大堆外国人反映类似的问题
我删过好几次缓存,都没能成功下载,而且它下载没成功,不应该先提示下载网络错误吗?为什么直接说Cannot open load file?这说明程序设计有问题,根本没有考虑过网络错误。一旦出现网络错误,它无法自动恢复重试。另外这并不只是因为墙,Github issues里有很多外国人反映这样的问题,开发人员回复都说是melpa不稳定挂了,可见开发人员根本不懂怎么设计一个robust程序 。
我怀疑是Elisp太烂,程序写不好,基本的IO错误都不知道处理。
烂语言会引诱程序员写出烂代码。
1 个赞
你的问题论坛里已经有人反映过
切换前
[image]
终端查看所有分支,并切换到develop
[image]
打开emacs,需要安装180个package但都无法获取的情况
[image]
好像是镜像源的问题
[image]
然后还报了bind-map缺失的问题,
[image]
然后更换本站推荐的develop分支镜像后依然报错,带debug启动如下(弱鸡表示完全看不动了
[image]
欢迎大家指出我上述操作过程的问题
环境:ubuntu16.04;emacs27.0,50
我更新 Spacemacs 也遇到相同的问题,重新编译 Emacs 就行了。
我今天又碰到這個,編譯最新的 emacs git head 修復……
Chris
2018 年2 月 14 日 17:09
4
只看题目不看内容,我可以这么反驳:有了其他的语言,就能有一个现代化的Emacs了?Emacs的现代化需要有现代化的开发者
有啊。但是 30 年来没人搞成过啊。所以我不觉得今年能搞成。uemacs 扩展能力有限,要做出 Spacemacs 类似的东西是不可能的。有个用 Java 写的完全兼容 Emacs Lisp 和 Scheme,然而都没什么人用,我猜是用 Emacs 的没几个同时精通 Lisp 和 Java 的。Guile 开发基本停滞了。最接近成功的应该是 Common Lisp 的 McCLIM 图形库,真的是一个良好的图形界面系统(等价于 macOS 的 Cocoa),就差个编辑器了(Evil 用户都知道这个梗吧)。然而现在用 CL 的人少到连语言标准都没人更新,CL Emacs 也是基本挂了。嗯,现在说自己用 Lisp 的都在用 Racket 和 Clojure 了,不算 Emacs Lisp 的话。Quiche Eaters。
Elisp 不好吗?目前是不好,作为胶水语言还差了些,作为编程语言不太合格。然而现在 Emacs 连 Dynamic Modulus 和 FFI 都有了,也看到没几个在用。我相信用 Ruby 给 Emacs 写个包管理器也不难,但为什么没有呢?
Elisp 虽然有很重的历史包袱,但是近几年来一直有革新,词法绑定和多线程都在这几年加了进来,优化也一直在做。
要说垃圾语言,只有一句话:语言只分两种,被人骂的和没人用的 。
1 个赞
不好意思,“现代化”的开发者都干不动。现在的Emacs 就和 TeX 差不多,用户基本只会用现成的,顶多写宏包,底层实现都没有几个人搞,搞出来几个也多半死不活,LaTeX 一直成主流。
racket7 用 chez-scheme 来编译,不过现在正式本版是 6.12。
目前的进展 Racket-on-Chez Status: January 2018
只要哪天 RMS 想开了,把 Emacs-lisp 替换成 Racket,或者用 chez-scheme 来自举。反正 Racket 和 Emacs-lisp 都是 scheme 方言。
现在 RMS 不怎么管了。而且他本人早说过如果能重来会用 Scheme 写 Emacs。
另外不要乱讲,Emacs Lisp 跟 Scheme 没关系。Emacs 没有用 Scheme 是因为那时候还没有 Scheme 。然后说 Racket 是 Scheme 会被两边的人打的,Racket 是一门脱胎于 Scheme 的新语言。
另外你看看 Guile Emacs 挂成什么样了就知道 Racket Emacs 是不太可能的。没人开发。
然后从我个人体验看 Racket 和现在的 Emacs 比跨平台能力太差。而且不知道为啥在我 macOS 和 Linux 还有 NetBSD 上都没能编译成功,只能用 Binary。怀疑里面有黑科技。
Emacs 有些语法和 Common-lisp 也很像,至于是不是 Scheme 的方言,我看知乎上很多人都说 Emacs lisp 是 Scheme 的方言,我也就当真了。
我之前用 Racket 和 chez-scheme 做 SICP 上的习题,语法都一模一样~~~嗯,大概我还没深入研究吧。
Lisp 语言太多了,每次写完 Scheme 再转换到 Clojure 或者 Emacs-lisp,脑子就一团浆糊。还是统一 Lisp 的写法,降低门槛。
只要有人想做就行了,比如 Remacs。
1 个赞
不了解 Spacemacs。你遇到的问题跟你标题中的猜测没有关联。
LdBeth
2018 年2 月 14 日 19:13
11
关于逼乎的事不做评价,不过我还要多提醒你一句不要把 Lisp 和函数式编程划等号
统一语法这事,Common Lisp 当初做的就是这事,可惜还有一些余孽没能消灭(说的就是你,Scheme! 结果现在出来了 Racket 这神物)。之后 Common Lisp 的总纲成了“比 Scheme 更多(特性丰富),比 Scheme 更少(语法简洁)”。但是到目前为止,Commom Lisp 仍然是特性最丰富的 Lisp 方言。
Clojure, Hy,Arc 和 Newlisp 我认为只是“聪明的”语法糖罢了,只能算是一种 DSL。
4 个赞
LdBeth
2018 年2 月 14 日 22:18
13
我是指,這些 Lisp 方言所宣传的特性,在 Common Lisp 上是都能轻松实現的。另外,我也用 Stack Machine 的。
这很大程度上,是因为你对Emacs不太了解而已,或者emacs不适合你, emacs是贡献者用手敲出来的,不是抱怨出来的。
另外你这不要把spacemacs当成官方emacs,spacemacs说白了是别人的配置,你用别人的配置出问题,只能怪你自己不了解这一份配置或者怪这份配置写的太烂。
1 个赞
语言的事我不太懂,不过看起来还是很有希望的。大过年的,一大早就开始技术讨论了了👍
其实 guile-emacs 也基本上能用了,不过启动速度比较慢,可能因为默认包都是以纯粹的文本文件加载的吧。
guile-emacs 用的 guile 是 2.0, guile 2.2.3 宣称对 elisp 完全兼容,速度也有很大提升,如果 guile emacs 的 guile 能换成 2.2.3, emacs 的版本能换成 26 就好了。可惜, guile emacs 的开发已经停滞很长时间了。
不太同一最后一点,emacs应该对于普通用户是享受的,对于高手是折腾的,不然一直让人折腾很多人会放弃使用的
重新编译 Emacs ?无语,所以说这不是Spacemacs的问题,而是Emacs本身的问题?为什么重新编译一下就OK了?
既然入了emacs的门,就没有普通人,emacs配置性给了用户太多的欲望了。。。用emacs的只有三种人,高手,正在成为高手,放弃的人
1 个赞