Emacs as an IDEまとめ

Emacsでプログラミングをするためのノウハウまとめ.

参照/検索

🔧Emacs Projectile

プロジェクト管理のパッケージ. これの便利なところは, 📝gitの情報を解析するところ. たいていのソフトウェアはgitリポジトリ単位でプロジェクトを分割することが多いので, このスコープに限定しつつ検索できるのはよい.

🔧xref

Find Identifier References.

Emacsではidentifiersをある名前を指し示すものと定義して, それらをプログラマブルに参照するための機構をxrefとして提供している.

we use the term “identifiers” to collectively refer to the names of any kind of subunits, in program source and in other kinds of text alike.

これの便利なところは, いろんな言語でそれぞれのキーバインドを覚える必要がなく, xrefを通じて新しい言語でも検索が便利にできるという, IDEらしい汎用検索インターフェイス.

✅xref-find-definitionsの結果を別のウィンドウに表示するには?

xref-find-definitions-other-windowをつかう.

補完

auto-completeとcompany-modeが二大巨塔.

🔧company-mode

corfu.el

ニューフェイス.

https://github.com/minad/corfu

置換

複数ファイルの一括置換と置換(grep-mode)

grep(ag/ripgrep)やそれの類似ツールと絞り込みIF(ivy, vertico)をつかった方法. ツールは流行りによっていろいろ変わるものの, だいたい編集の流れは変わらない.

  • 絞り込み検索したら, C-c C-eで一時的なミニバッファに書き出し.
  • ミニバッファを修正
  • C-x C-sで保存(or C-c C-kで破棄).

Insights

優れた IDE が備えるべき機能

まあLSPの登場でもうあまり関係ないかもしれない.

  • シンタックスハイライト/ インデント prog-mode
  • 検索・置換 iedit, multiple-cursors, helm-ag, helm-swoop….etc
  • タグジャンプ ctags
  • コード補間auto-complete, yasnippet
  • エラーチェックflycheck
  • リファクタリング emacs-refactor
  • インタープリタ・デバッカ inf-ruby, pry
  • プロジェクト管理 projectile

Emacs開発環境でSEOトップを取りたい人生だった

個人的な思い出としては各言語でEmacsの開発環境でSEOトップを目指してブログを書いていた過去があり, なかなか熱いトピックなものの, 技術の移り変わりがはやく数年で使えないノウハウになるのが欠点.

References