IDEmacs: EmacsをVisual Studio Codeのように使うための設定セット
(codeberg.org)- Emacs環境を主流のIDEのように構成し、初心者でもすぐに使えるようにした設定集
- VSCodeのテーマ、エクスプローラー、タブ、マルチカーソル、自動補完などの主要機能をEmacsで再現
- GUIとマウス操作を標準サポートし、
customインターフェースで設定可能 - Lisp(Sly/Geiser)開発者と非プログラマーの両方に向けた完全な編集環境を提供
- 既存のEmacsの参入障壁を下げ、新規ユーザーが簡単に適応できる出発点を提供
IDEmacs概要
- IDEmacsは、EmacsをVisual Studio CodeやSublime TextのようなGUI IDEとして使えるようにする設定セット
- Emacsの強力な機能を維持しつつ、初心者にとってなじみやすいインターフェースを提供
- 主な対象は次の3グループ
- 他のIDEから移ってきたプログラマー、または初めてコーディングを学ぶユーザー
- Common LispおよびSchemeの初心者(Sly/Geiser、構造的編集機能を含む)
- Org、Markdown、LaTeXの文書編集をしたい非プログラマー
- Emacsの標準的な体験に不慣れなユーザーにすぐ使える環境を提供し、参入障壁を下げることが目的
主な特徴
- GUIおよびマウス対応
- 多くのスターターキットと異なり、GUI要素を隠さない
customGUIによる設定をサポート(Elispを直接編集する必要なし)
- IDEスタイルのキーバインド
- CUAモードをベースに、VSCodeなどで使われるショートカットを幅広く再現
Evilモードを使うSpacemacsやDoomとは異なり、GUI中心の操作
- 完全なEmacsディストリビューション級の構成
- 高速で設定不要の環境
- コメントが豊富なElispコードで構成され、学習資料としても活用可能
- 目標水準は完全な模倣ではなく、「十分に似た」体験を提供すること
VSCode構成(開発中)
- 現在提供されている唯一のIDE構成
- 含まれる要素
- VSCode Dark Plusテーマ
- Treemacsのサイドバーファイルエクスプローラー
- Centaur Tabsのタブバー
- breadcrumbによるファイルパス表示
- idle-highlight-modeによるシンボル自動ハイライト
- VSCodeの「General」「Basic Editing」「Rich Languages Editing」「Multi-cursor」ショートカットの大半を実装
- 主なパッケージ
- 編集:
whole-line-or-region,expand-region,multiple-cursors,smartparens - バージョン管理:
vc,magit,diff-hl,blamer - 自動補完:
Vertico,orderless,Consult,marginalia,company - Lisp開発:
sly,geiser,adjust-parens - その他:
eat(ターミナル),org-superstar,pdf-tools,undo-tree,helpful,rainbow-mode - コード整理は
use-packageで管理
- 編集:
キーバインド構成
- VSCodeのショートカットをEmacsコマンドにマッピング
- 例:
C-S-p→ コマンドパレット (execute-extended-command)C-p→ ファイルを開く (consult-locate)C-S-n→ 新しいウィンドウ (make-frame)C-w→ ウィンドウを閉じる (idemacs-kill-buffer-noprompt)C-,→ ユーザー設定 (customize)
- 例:
- 基本編集、マルチカーソル、ナビゲーション、ファイル管理、表示制御など、項目ごとに対応コマンドを定義
- 一部のショートカットはVSCodeと動作が異なり、TODOとして記載
参加と貢献のお願い
- ユーザーにIDEmacs使用後のフィードバック提供を依頼
- 初心者の利用観察、Jabber/XMPPまたはイシュートラッカーを通じた意見共有
- 開発者にはコード改善と機能拡張への参加を推奨
関連プロジェクト
- Mousemacs(GitHub: seamus-brady/mousemacs)
- EmacsをSublime TextやVSCodeのように動作させるディストリビューション
- Lisp学習のために作られ、マウスフレンドリーなインターフェースを提供
- シンプルなテーマとともにEmacsのすべての機能を維持
インストールと実行方法
- 必須依存関係
- Emacs 29以降,
git, DejaVu Sans Monoフォント
- Emacs 29以降,
- 任意の依存関係
grep,locateまたはplocate
- インストール手順
- リポジトリをクローン
git clone https://codeberg.org/IDEmacs/IDEmacs - インターネット接続された状態でEmacsを実行
emacs --init-directory=/path/to/IDEmacs/vscode
- 実行時に必要なEmacsパッケージを自動でダウンロード
- リポジトリをクローン
その他
- 現在はVSCode構成以外のIDEスタイルは提供されていない
- 今後、リソースに余裕があれば新しいGUI実装の可能性に言及
- 原文に追加情報なし
1件のコメント
Hacker Newsのコメント
VSCodeが簡単だと思っている人たちは現実を見たほうがいい
初回起動時はポップアップ、サイドバー、ツールチップなどで圧倒される感じがする
自分もEmacsユーザーだが、Emacsが直感的だとは主張しない
ただVSCodeも魔法のように簡単なツールではなく、単に大衆的な選択肢というだけだ
ファイルツリー、エディタ、ターミナル、タブ補完、拡張機能のインストールあたりが、ほとんどのユーザーの操作範囲だ
標準で提供されるか拡張で簡単に追加できない限り、たいていは使われない
しかしVSCodeの複雑さはvimやEmacsと比べるレベルではない
短いチュートリアルや30分ほど触れば十分に慣れられる
一方でneovimには本が一冊必要だった
最近RustRoverを試したが、クリックだけでは望む設定を作りにくかった
IDEの「簡単さ」が思った以上に幻想かもしれないと感じた
標準のファイル選択ダイアログやCUAショートカットのような一般的インターフェースをサポートするツールは多い
だからEmacsの代わりにZim-wikiのような代替を使っていて、そのほうが満足している
一方でtmuxやvi、nano、emacs中心で作業してきた人は戸惑うかもしれない
Emacsは単なるIDEではなく、哲学と自由を体現した道具だ
プログラミング中心のユースケースに焦点を当てたプロジェクトは多いが、VSCodeでもEmacsキーバインドで75%くらいは再現できる
Emacsの本質は「部品箱」を渡して自分で組み立てさせるアプローチにある
まるで「文明化された時代の優雅な武器」のようだ
ほとんどのデータ構造は可変で、setqのような命令的関数も多い
Emacsで固定ウィンドウレイアウトが実際にうまく機能するのか疑問だ
以前試したときは、Treemacsパネルがファイルビューアの代わりにコードバッファを表示することがあった
最近はEmacsをIDEとして設定するのがかなり簡単になった
組み込みのeglotのおかげで、以前よりelispコードはずっと少なくて済み、Pythonの設定も1行で十分だ
だからこの手のプロジェクトは、自分のような既存ユーザー向けというより初心者向けの入り口に近い
OCaml REPL、68000エミュレータ、gdb統合まで大きな設定なしで使えた
その後はリモートサーバー環境のためvimに移ったが、最近またEmacsを試してみたらパッケージ管理がずっと洗練されていた
ただしDevOps/SRE関連のツール群は依然として不足している
SpacemacsやDoomのようなパッケージバンドル系プロジェクトが好きだ
自分では使わないが、新しいパッケージを見つけるきっかけになるし、設定をまた触る口実にもなる
minimapという名前が特に印象に残ったシンプルだが目的にぴったりの名前で、思わず微笑んだ
EmacsのUIをモダンに再構築するプロジェクトがあってほしい
コアはそのままにしつつ、視覚的な区別が明確で目が疲れにくいインターフェースがほしい
昔のLispベースのエディタのように、Ctrlを押すとショートカット案内が出る機能もよかった
UIは十分で、シングルスレッド構造と頻繁なフリーズのほうがもっと差し迫った問題だと思う
1日に1回はC-gを押さなければならない現状こそ改善されるべきだ
curses/SDL2上で動作し、Emacsスタイルを受け継いでいる
以前は外部パッケージだったが、最近Emacs本体に統合された
関連コミットへのリンク
グラフィカル環境でもターミナルでも同じ見た目で動く点が大きな利点だ
Treemacsがどこでも同じ見た目で表示されるのが特に気に入っている
OniVim v2が成功しなかったのは残念だ
ネイティブIDEでありながら、VSCodeのプラグインシステムを完全にサポートしていた
OniVim v2のアーカイブリンク
他のGUIフロントエンド開発者にも有用だったはずだ
NeovimはRPC方式で通信するが、性能は十分に高速だ
VSCode向けNeovimプラグインも、この構造のおかげで完全なvim体験を提供している
VimユーザーはElectronベースの入力遅延やEULAに不満を持つだろうし、VSCodeユーザーはVimに関心がない
25年以上Emacsを使ってきたが、新規インストール時に最初にやることはGUI要素の無効化だ
メニューやツールバーはまったく使わない
ただ、指導教員は素のEmacsをマウスで使ってLaTeX作業をしていて、かなり新鮮な体験だった
これからもDoom Emacsを使い続けるつもりだが、こうした試みは歓迎したい
EmacsにはVerticoのような革新的なUIプラグインが多いが、標準体験はまだ不十分だ
こうしたプロジェクトがEmacsをより多くの人に身近なものにしてくれるなら良いことだ
15年以上Emacsを使ってきたが、自分の唯一の願いはVSCodeのようにリモート編集ができるクライアント・サーバーモードだ
遅延の大きい環境でもうまく動くソリューションがあるといい
なければ自分で作ってみようと思う
それでもVSCodeのPython統合はかなり良い
-nw)で実行する