Emacs を 30 年も愛用しているオジサン達は、未だに ~/.emacs とか ~/.emacs.el とか使っていたりするので(人の事言えない)、Emacs の環境を最新化して、若い人たちに Emacs の事を質問されたときに、
「は?なんでそんな環境古いんすか?w」
なんて言われないようにしましょう。*1
第一段階
まず ~/.emacs.d/init.el に移行しましょう。これは今まで .emacs やら .emacs.el に書いていた設定を init.el にコピペするだけです。簡単でしょう? たぶん package とかは使っていると思うので、全パッケージを棚卸しして、パッケージ群をすべて~/.emacs.d 配下に配置するように再構築したほうが良いです。少し面倒ですが頑張りましょう。
第二弾階
package を卒業して straight に移行します。
;;; package ;; (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") ;; (require 'package) ;; (package-initialize) ;; (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")) ;; (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) ;; (add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/")) ;; (package-refresh-contents)
package は卒業するのでコメントアウトしてしまいます。Emacs ではリージョン選択して C-c / でバッファモードに合った適切なコメント符号を挿入してくれます。例えば elisp なら「;; 」ですね。賢いぞ Emacs!
;;; straight (defvar bootstrap-version) (let ((bootstrap-file (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) (bootstrap-version 5)) (unless (file-exists-p bootstrap-file) (with-current-buffer (url-retrieve-synchronously "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" 'silent 'inhibit-cookies) (goto-char (point-max)) (eval-print-last-sexp))) (load bootstrap-file nil 'nomessage))
これを init.el に書いて emacs を再起動してください。インストールされているパッケージは straight に移行してくれます。簡単です。
新しくパッケージを導入したい時 その1
今までは
M-x package-install
でパッケージを追加していたと思いますが、これからは
M-x straight-use-package
を使います。
(straight-use-package 'xah-replace-pairs)
straight はインストール済みの場合スキップするので、こんなのを init.el に書いておくと良いです。これは xah-replace-pairs を追加インストールする例です。
(straight-use-package 'popwin) (straight-use-package 'ivy) (straight-use-package 'epc) (straight-use-package 'python-mode) (straight-use-package 'flycheck) (straight-use-package 'ddskk)
今までインストールした他のパッケージについても、思い出した時に追記しておくと良いです。すぐに追記する必要は無いですが、次回 Emacs 環境を再構築するとき楽ちんになります。
新しくパッケージを導入したい時 その2
パッケージが gnu や melpa などにアーカイブされている場合は、「その1」の方法で良いのですが、github に登録されているだけのパッケージもあったりします。例えば、今流行りの最新のパッケージなんだけど、まだアーカイブされてない!なんて場合もあったりします。そういう場合、今までの package の方法ではダウンロードして el ファイルをどっかに配置して・・・とか面倒な作業が必要でした。さらにダウンロードした場合、最新版のアップデートは自分管理になってしまいます。これもすごく面倒でやっかいな問題です。
しかし安心してください。 straight ならこれらの問題を簡単に解決します!
(straight-use-package 'use-package) (use-package chatgpt :straight (:host github :repo "emacs-openai/chatgpt"))
これは emacs から chatgpt を使うパッケージをインストールする例です。straight を使うと、このように github から直接インストールする記述もできます。便利!
ちなみにパッケージのアップデートは自動では行いません。手動作業になります*2。
すべてのパッケージを最新版にしたい:
M-x straight-pull-all M-x straight-rebuild-all
個別にパッケージを最新版にしたい:
M-x straight-pull-package RET <PACKAGE_NAME> M-x straight-rebuild-package RET <PACKAGE_NAME>
として Emacs を再起動してください。
そして
これで後輩たちに引けを取らない、最新ぽい Emacs 環境に移行できました*3。もう古いなんて言わせないぜ! あとは leaf とかもあるのですが、まだ勉強中なので、ここに書けるほどではありませんwww
それでは。良き Emacs ライフを!