无网络且禁用Git时,如何为Emacs 23.1.1安装第三方包?
解决Emacs 23.1.1无Git环境下手动安装常用包的方案
我太懂这种老版本Emacs+受限环境的憋屈了——不能用Git、package.el拉源失败、装包还缺函数,咱们换个思路,用纯本地手动加载的方式搞定powerline、smartparens这些工具,一步步来:
1. 先找兼容Emacs 23的包版本
Emacs 23是真的老,最新版的包基本都不支持它了,得找历史兼容版本:
- powerline:选v1.2.0(最后一个支持Emacs 23的版本)
- smartparens:选v1.6.1
- evil:选v1.0.9(更早的版本兼容23)
- auto-complete:选v1.5.1
- 额外补依赖:
cl-lib.el(Emacs 23自带的cl库和新的cl-lib不兼容,得单独下)、popup.el v0.5.3(auto-complete的依赖)
2. 手动下载包文件
去每个包的代码托管页(比如GitHub的Releases页面)下载对应版本的压缩包(tar.gz/zip都可以),或者直接下载单个.el文件(比如cl-lib.el)。因为不能用Git,直接浏览器下载就行。
3. 整理包目录并添加到加载路径
在你的.emacs.d目录下新建一个local-packages文件夹,把每个下载的包解压到这里,比如:
~/.emacs.d/local-packages/ ├── cl-lib.el ├── evil-1.0.9/ ├── powerline-1.2.0/ ├── popup-0.5.3/ ├── smartparens-1.6.1/ └── auto-complete-1.5.1/
然后在你的.emacs配置文件开头,把这些目录加到Emacs的加载路径里:
;; 根目录 (add-to-list 'load-path "~/.emacs.d/local-packages") ;; 每个包的子目录也要加,比如evil的核心文件在子目录里 (add-to-list 'load-path "~/.emacs.d/local-packages/evil-1.0.9") (add-to-list 'load-path "~/.emacs.d/local-packages/powerline-1.2.0") (add-to-list 'load-path "~/.emacs.d/local-packages/popup-0.5.3") (add-to-list 'load-path "~/.emacs.d/local-packages/smartparens-1.6.1") (add-to-list 'load-path "~/.emacs.d/local-packages/auto-complete-1.5.1")
4. 先补依赖,再加载配置
Emacs 23缺很多新函数,先把依赖补上,再逐个加载包:
;; 先加载cl-lib,解决大部分函数缺失问题 (require 'cl-lib) ;; 加载popup(auto-complete的依赖) (require 'popup) ;; 配置evil (require 'evil) (evil-mode 1) ;; 配置smartparens (require 'smartparens-config) (smartparens-global-mode t) ;; 配置powerline (require 'powerline) (powerline-default-theme) ;; 配置auto-complete (require 'auto-complete) (require 'auto-complete-config) (ac-config-default)
5. 遇到函数缺失的应急处理
如果加载某个包时提示“XXX函数未定义”,直接搜索这个函数名,找到对应的.el文件(比如dash.el、s.el这类工具库),下载兼容Emacs 23的版本,放到local-packages里,加到load-path后先加载它再加载目标包。
比如如果smartparens提示缺dash-let,就下载dash.el的v2.10.0版本(兼容Emacs 23),然后在配置里加:
(require 'dash)
内容的提问来源于stack exchange,提问作者lebesgue
相关产品推荐
相关产品推荐

