1
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?

Doom Emacsを使って1年が経った話

Last updated at Posted at 2025-12-20

この記事は Emacs Advent Calendar 2025 の20日目の記事です。

こんにちは、noboです。Doom Emacs を使い始めて約1年と少しが経ちました。
今回は以前書いた メインエディタをVSCodeからDoom Emacsに変えるまでにやったこと の続編として

  • Rails で開発する際に実際に使っている Tips
  • 1年使った感触

についてまとめます。

Doom Emacs とは?

Doom Emacs は Emacs の設定フレームワークで、

  • Vim キーバインド(evil)
  • モダンなデフォルト設定
  • モジュール単位での構成

が特徴です。

導入や全体像については、以前書いたこちらの記事に詳しく書いています。

参考
https://qiita.com/Hitoshi-Noborikawa/items/ab2e3533fd08ac6f38c5

今回は 「使ってみてどうだったか」 にフォーカスします。

Rails で開発する時に便利なパッケージたち

1年使って、結局 Rails 開発でよく使っているのはこのあたりです。

rails-routes

Rails の routes を検索して

  • 対応する controller / action を探す
  • 必要ならコードを追加する

といったことが Emacs 内で完結します。

ruled-switch-buffer

自分で定義したルールに基づいて、
ペアとなるファイルを切り替える パッケージです。

  • controller ↔ spec
  • model ↔ spec
  • view ↔ controller

Rails の「対応関係」を意識せずにジャンプできるのが良いところです。

自分は下記のように view_component のファイルをジャンプして使っています(親方に教えてもらいました)。

(use-package! ruled-switch-buffer
  :config
  (ruled-switch-buffer-define view-component-rb
    :matcher (lambda (fn) (string-match "_component.rb$" fn))
    :mappers ((lambda (fn) (replace-regexp-in-string "\\.rb$" ".html.haml" fn))
              (lambda (fn) (replace-regexp-in-string "\\.rb$" ".html.erb" fn))))

  (ruled-switch-buffer-define view-component-haml
    :matcher (lambda (fn) (string-match "_component.html.haml$" fn))
    :mappers (lambda (fn) (replace-regexp-in-string "\\.html.haml$" ".rb" fn)))

  (ruled-switch-buffer-define view-component-erb
    :matcher (lambda (fn) (string-match "_component.html.erb$" fn))
    :mappers (lambda (fn) (replace-regexp-in-string "\\.html.erb$" ".rb" fn)))
  (map! :n "g F" #'ruled-switch-buffer)
  )

projectile-rails

projectile と Rails の構造を組み合わせて、プロジェクト内を爆速で移動できます。

よく使うものを挙げると

  • SPC m r m → model
  • SPC m r c → controller
  • SPC m r v → view
  • SPC m r p → spec

めちゃ便利です。

rspec-mode

RSpec を Emacs から直接実行できます。

  • SPC m t s → カーソル位置
  • SPC m t v → ファイル全体
  • SPC m t a → 全テスト

ターミナルに移動して実行しなくて良いというのはかなりストレスなく開発ができます。

Org Mode

Rails の話よりも、実は Org Mode が一番好きです。

Org Mode でできること

  • テキストを書く
  • ソースコードを実行する
  • ファイルやURLへのリンクを埋め込む
  • タスク管理
  • 時間管理

1年使って思ったのは

結局、思考はテキストで整理するのが一番強い

ということでした。

Claude Code も Emacs で使っている

最近は Claude Code を Emacs で使っています。

  • 選択箇所を claude が把握してくれるので指示がラク
  • 毎回画面がカクツクのでそこは気になっていますが...

「Emacs内で完結する」 というのが一番大きい価値だと感じています。

Magit は便利。でも RubyMine も便利

Magit はすごく使いやすいのですが、個人的には差分反映やコンフリクト解消、定義ジャンプなどは RubyMine が使いやすいなと感じることもあります。

基本的には Doom Emacs を使いつつ、日々いろいろなエディタ(ツール)を試しています。

ただ「考える」「書く」「まとめる」場所は Emacs にあります。

1年使って思うこと

一言で言うと 面白い です。

何が面白いかというと

  • 「ちょっとこうしたい」を自分で作れる
  • 自作 CLI のポモドーロタイマーを modeline に表示したり遊べる
  • カスタマイズする楽しさが分かってきた

などがありますね。

来年にはもっと使いこなせるようにしていきたいと思います。
読んでくださりありがとうございました。

1
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
1
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?