0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Emacsで新しいパッケージを入れるときの私の手順

Posted at

こんにちは、Emacs使いのよんたです。

ちょっと前に入社しました🎉
新たな環境で新たなEmacsパッケージを入れることが多くなっています。

そこで本稿ではEmacsで新しいことをしたいときにカスタマイズする手順を紹介します。

Emacs使いの方には「へー、そんなカスタマイズ方法があるんだ」と参考になれば幸いです。
またEmacs以外使いの方にも、読んで「へー、Emacsって自由でおもしろそう」と思っていただければ嬉しい限りです。

パッケージを探す

まずはやりたいことのパッケージを探します。

例えば、

  • Elm用の開発環境がほしい
  • ファイルツリーを表示したい
  • GitのCOMMIT_EDITMSGに色をつけたい

なんかです。

開発環境なら言語用のメジャーモードやLSPモード、さらにはLinter・Formatterのマイナーモードや設定がほしいでしょう。
ファイルツリーならなんらかの外部パッケージがありそうです。
Gitコミットのようなよくあるものなら、内部パッケージがあるかもしれません。

これらに対して、自分は主に以下のような手を使って探しています。

MELPAトップページでサーチ&ソート

  • DL数があって便利
  • GitHubリンクもあって最高

image.png

ChatGPTに聞く

  • 「EmacsでElm用の開発環境を整えたいんだけど、どんなパッケージがおすすめ?」などと聞くとすぐ答えてくれる
  • LLM便利!

Google検索してブログとかを漁る

  • 最近は古い情報ばかりであまり使わなくなりました……、寂しい

パッケージを比較する

MELPAの検索やChatGPTの回答は、たいてい複数のパッケージが見つかります。
そこでどれが便利か自分の目的に合うかを調査・比較します。

私は以下のような点を注目して調べています。

GitHubのREADMEを読む

  • 特にスクリーンショットがあるとわかりやすくて好印象
  • どんなカスタマイズができそうか
  • 最終commitはいつで、いまもメンテナンスされているか

MELPAのDL数・GitHubのスター数

  • 人気があるのにはそれなりに理由があり、信頼できる数値として見ています

モダンな実装さ、ソースコードの短さ

  • 実装が巨大なレガシーパッケージはどうしても壊れやすい印象があります
  • 特に最近はEmacs標準機能の追加・強化が最近多く、
    モダンでシンプルなパッケージがどんどん出てきている印象です1

パッケージをインストールしてみる

どのパッケージを使うかを1つか2つに絞ったら、実際にインストール・カスタマイズして試してみます。
私は設定にleaf.elを採用しているので、これでインストール&カスタマイズを書きます。

インストールには、:ensure tつきleaf項をeval-regionで実行したり、package.elのlist-packageを使ってリストから選択・インストールしたりしています。

leaf.elでのインストール

init.el
(leaf elm-mode :ensure t) ;; この行を選択しeval-regionしたりする

package.elのlist-packageによるインストール

  • M-x list-packageで呼び出し
  • iでインストールするパッケージを選択
  • xで実行
  • 他に便利なコマンドとして
    • dでデリーとするパッケージを選択
    • Uでアップデート可能パッケージすべてを選択

image.png

パッケージをカスタマイズして動作を試す

カスタマイズも同じくleaf.elを使って行います。
scratchバッファーにてsetqadd-hookで試すことも多いです。

このとき、カスタマイズする方法は以下のように探して実行します。

GitHubなどのREADMEを読んでカスタマイズ方法を調べる

  • たいてい基本的な使い方が載っている
  • カスタマイズ可能な変数の一覧もあったりする
  • おすすめのカスタマイズ例があると好印象

ソースコードをdefcustomで検索してカスタム変数をすべて見てみる

  • なんだかんだこの方法を使うことが多い2
  • カスタマイズ可能なカスタム変数がすべてわかる
  • カスタマイズするとどんな動作が変わるのか、ソースコードですぐ追える
  • 他にも、設定に使えるXXX-mapXXX-modeの定義を見たりする

image.png

実際にカスタマイズして動作を見てみる

  • インストールと同じく、leaf.elで書いた設定をeval-regionで実行する
  • scratchバッファーにてsetqadd-hookを書き、C-jeval-print-last-sexp)で実行する
    • emacs-lispとしての補完やドキュメント表示も利用できる
  • コードを実行すると、Emacsの動作がすぐに変わり便利

image.png

image.png

ちなみに、customize-groupは使っていない

Emacsにはカスタム変数を見るためにcustomize-groupという関数も用意されています。
TUI形式でカスタム変数の一覧表示・変更ができます。

しかし私はまったく使っていません。
ドキュメントだけではわからないことも多く、すぐ追えるソースコードを見ることが多いです。

image.png

まとめ

以上が私のEmacsカスタマイズ方法の手順です。
Emacsのカスタマイズはプログラミングそのものであり、とても楽しいです。
みなさんもEmacsのカスタマイズ沼にはまってくれれば幸いです。

ちなみにパッケージにはオシャレな名前がついていることもあり、検索するのが難しいと思っています。
例えば、

  • copilot.el
    • Copilot用パッケージだな!
  • Embark
    • 直訳すると「乗船」など
    • 🤔🤔🤔🤔🤔

となったりします。

他の方はどうやってパッケージを探したり、インストール・カスタマイズしていますか?
ぜひ教えてくれるとありがたいです。
いや、頼む!教えてくれ!

  1. 例えば私が移行したパッケージを例にあげると、expand-region → expreg、undotree → vundo、ivy/counsel/swiper → vertico/consult、yasnippet → tempel、all-the-icons → nerd-icons、smartparens → electric-pair-mode、auto-highlight-mode → idle-highlight-mode、volatile-highlights → goggles、git-gutter → diff-hl、centaur-tab → mode-line-tab、persp -> activities、などがあります

  2. 昔は英語に苦しんでいましたが、いまはellama-translateを使って一発で翻訳・要約できていい時代になったなと思います

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?