https://masutaka.net/chalow/2015-10-03-1.html
を参考にpackage.elの設定をinit.elに書いておくと、起動時に未インストールのパッケージを自動でインストールしてくれるので、init.elを複数環境で共有するときに便利。
でも、package.elはプロキシ設定をinit.elに書く必要がある。
Github等で管理しているinit.elをプロキシ環境(例えば会社)と非プロキシ環境(例えば自宅)で共通利用したい。
..emacs.d/init.el
;; ロードパスの追加
(setq load-path (append
'("~/.emacs.d/private-conf")
load-path))
;; proxy設定
;; private-conf/myproxy.elがあるときだけプロキシ設定をロード
;; 第2引数のtをつけると、ファイルが存在しなくてもエラーにならない
(load "myproxy" t)
;; package.el関係
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
(package-initialize)
(package-refresh-contents)
;; 追加したパッケージ
(package-install 'js2-mode)
(package-install 'helm)
(package-install 'company)
(package-install 'company-tern)
プロキシの設定は別ファイルに置く。
プロキシ環境ではファイルを配置。
非プロキシ環境ではファイルなし。
プロキシの設定方法。
http://yoshimov.com/tips/emacs-package-list-with-proxy/
プロキシ認証情報は*scratch*などで
(base64-encode-string "username:password")
して生成した文字列を、以下のbase64stringに設定する。
..emacs.d/private-conf/myproxy.el
;; proxy
(setq url-proxy-services
'(("http" . "proxy.example.com:8080")
("https" . "proxy.example.com:8080")))
(setq url-http-proxy-basic-auth-storage
'(("proxy.example.com:8080" ("Proxy" . "base64string"))))