短い答え
- 使ったほうがいい
長い答え
- 最終的にはEmacsの設定を書くのにパッケージマネージャーを使ったほうがよい
- とはいえ、パッケージマネージャーを使う難しさもあり、最初は使わず初めてみるのもよいと思う
Emacsの設定はどんなものか
Emacsの設定はEmacs Lispというプログラミング言語で行います。
例えば、~/.config/emacs/init.el
など1に以下のように書きます。
;; 設定変数をセット
(setq hoge-enabled t)
;; プログラミング言語なので、関数や計算もできる
(defun hoge-levelup (x)
(+ x 1))
(setq hoge-level (hoge-levelup (5))
各種パッケージのREADMEにおける設定の現状
パッケージによってREADMEの設定の書き方はバラバラです。
例えば、以下ような種類が考えられます。
パッケージマネージャーを使う・使わないで全然違う書き方になります。
;; M-x package-install RET hoge RET
(setq hoge-fuga t)
(require 'hoge)
(use-package hoge
:ensure t
:config
(setq hoge-fuga t))
(leaf hoge
:ensure t
:require t
:config
(setq hoge-fuga t))
現状におけるパッケージマネージャを使う難しさ
自分の手元設定とそろった書き方で設定がREADMEに記載されていれば簡単です。
そうでない場合は、自分で翻訳する必要があります。
具体的には、macrostep-expand
2やleaf-expand
などを使い、READMEに従った設定を書けているか確認する必要があります。
例えば、leafが用意しているleaf-expand
を使うと3、というコマンドを用意しています。
これを使うと、自分が書いたleaf節がどのように展開されるのかを確認できます。
インストール処理など多少の差異はありますが、ほぼ生書きと同じ設定なのが確認できます。
(leaf hoge
:ensure t
:require t
:config
(setq hoge-fuga t))
;; --------------------------------------------------------------------------------
(prog1 'hoge
(leaf-handler-package hoge hoge nil)
(require 'hoge)
(setq hoge-fuga t))
パッケージマネージャーを使う利点
最初に利用を推奨したように、パッケージマネージャーには多くの利点があります。
多少の難しさはありますが、楽しいEmacs Lispプログラミングが可能です。
- 繰り返しでてくる定番フレーズを短く書ける
-
(custom-set-variables hoge-fuga t)
→:custom (hoge-fuga . t)
- 他にもhookやbindなど便利な設定マクロがある
-
- 構造化され読みやすい
- デバッグが容易になる
- 例えば、特定の設定ブロックをまとめてdisabledしたりできる
まとめ
パッケージマネージャーは確かに使ったほうがいいです。
とはいえ最初から100点満点を目指すのも大変です。
なので、初心者の皆さんが少しずつEmacsに慣れてもらえればと思います。
わからないことはemacs-jpのSlackなんかで聞くと答えてもらえると思います!
-
~/.emacs.d/init.el
でもよい。~/.emacs.el
や~/.emacs
でもよいが、Emacsが自動生成するファイルも設置されるため、~/.config/emacs/
や~/.emacs.d/
でディレクトリを切るほうがよい。 https://www.gnu.org/software/emacs/manual/html_node/emacs/Find-Init.html ↩ -
Emacs Lipsのマクロを展開プレビューしてくれるパッケージ。 https://github.com/joddie/macrostep ↩
-
展開したいマクロの上にカーソルを置き
M-x leaf-expand
を実行すると、*Leaf Expand*
という新しいバッファにマクロ展開結果を表示してくれる。 ↩