DeepWorkPlan Vim
DeepWorkPlan Vim は Deep Work Plan のターミナルエディタです。ターミナルで作業する人とコーディングエージェントのための Neovim 設定で、計画もドキュメントもすべてのコマンドの索引も、キー操作ひとつで手の届く場所にあります。
これは独立した製品で、Deep Work Plan v7(v7.0.0)の任意の vim アドオンとして提供されています。Deep Work Plan はどのエディタとも、エディタなしでも動作し、このエディタも Deep Work Plan を必要としません。マシンには単独で追加でき、計画があってもなくてもエディタとして動作します。このページはリリース v0.5.0 を説明しています。
なぜ Deep Work Plan にターミナルエディタなのか
Deep Work Plan は .dwp/plans/ 以下の Markdown のフォルダです。ゴール、アトミックなタスク、検証ゲート、継続的なログで構成されます。人がレビューし、エージェントが実行し、どちらもターミナルで行うことが多くあります。この作業のために作られたエディタは、計画自体、その周りのドキュメント、そして両者の間を移動するキー操作という 3 つを手元に置きます。
DeepWorkPlan Vim はそのエディタです。言語サーバー、補完、リンティング、フォーマット、あいまい検索、ファイルツリー、厳選したカラーテーマを遅延読み込みで備えた、整えられた Neovim 設定に、Deep Work Plan のエディタたらしめるいくつかの画面が加わります。
- 計画
- タスク
- ゲート
- 完了
ツアー:古くならないコマンド索引
SPC h h(Space がリーダーキー)を押すか :DwpCommands を実行すると、エディタが持つすべてのマッピングが 1 行の説明付きで一覧表示されます。一覧は実際のキーマップから生成されるため、どこで定義したマッピングも登録なしで索引に現れ、索引が古くなることはありません。
ツアーはこれだけです。nvim を起動し、Space、h、h と押してください。
- SPC h h このコマンド索引を開く
- SPC P 計画ブラウザ
- SPC m p ブラウザで Markdown をプレビュー
- SPC m r バッファ内で Markdown を描画
- <C-a> ファイル全体を選択
- SPC y システムクリップボードへコピー
- SPC t f ファイルを検索
- SPC t t プロジェクト内をライブ検索
- SPC x 現在のファイルを実行またはプレビュー
- SPC n ファイルツリー
- SPC t h カラーテーマを選ぶ
- そのほかすべてのマッピングも、常に最新の状態で
得られるもの
5 つの機能が、それぞれキー操作ひとつで使えます。
| 機能 | キー | 内容 |
|---|---|---|
| 生成されるコマンド索引 | SPC h h |
設定内のすべてのマッピングを、実際のキーマップから生成して一覧にします。 |
| VS Code 風の操作 | <C-a>, SPC y |
1 キーでファイル全体を選択し、システムクリップボードへコピーします。クリップボードはシステム共通なので、単独の y もそこにコピーされます。 |
| Deep Work Plan ブラウザ | SPC P |
リポジトリ内の計画を状態別にまとめて進捗バーとともに表示するサイドバーと、1 つの計画を読むリーダー。 |
| Markdown ビューア | SPC m p, SPC m r |
ブラウザで Markdown をプレビューするか、バッファ内で描画します。 |
| 検証付きインストーラ | — | macOS、Linux、WSL 向けの自己完結的なインストーラ。Windows には文書化された手動の手順があります。 |
エディタを離れずに計画を読む
SPC P、:DwpPlans、またはステータスラインのセグメントのクリックで、計画のサイドバーが開きます。現在のディレクトリと Neovim の設定ディレクトリにあるすべての .dwp/plans/ フォルダが対象で、注意が最も必要なものから順に並びます。エディタ上のラベルは Working、Needs attention、Ready、Not started、Done です。各計画には進捗バーが表示されます。
計画で Enter を押すとリーダーが開きます。1 文のゴール、状態と進捗、現在のタスクに印を付けたタスクチェックリスト、そして計画自身のファイルへの分かりやすい移動先が表示されます。ステータスラインには現在アクティブな計画が表示され、スタート画面には上位 3 件が並びます。これらの画面は計画を説明するだけで、.dwp/ には書き込みません。
計画の Markdown ファイルをその場で読むには、SPC m p で現在のバッファをブラウザでプレビューし、SPC m r でバッファ内に描画します。どちらも Markdown バッファでのみ動作します。
インストール
インストールは 3 つのコマンドです。スクリプトをダウンロードし、このサイトが配布するファイルの SHA-256 と照合してから実行します。インストーラは自身のリリースに固定されているため、別のバージョンを選ぶ場合を除き、このページが説明するリリースである v0.5.0 を正確にインストールします。
curl -fsSL -o install.sh https://deepworkplan.com/vim/install.sh && \
echo "4890c140528d6b8d19b6bbc4102051e0b9dce2e26f43a693bdeab2e1cd8e196b install.sh" | shasum -a 256 -c && \
bash install.sh 実行する前に確認する
先に中身を読みたい場合は、スクリプトをダウンロードし、フィンガープリントを確認し、読んでから実行してください。
- スクリプトをダウンロードする
curl -fsSL https://deepworkplan.com/vim/install.sh -o install.sh - SHA-256 を表示し、下の値と照合する
sha256sum install.sh - スクリプトを読む
less install.sh - スクリプトを実行する
bash install.sh
- 現在配信中のスクリプトの SHA-256
4890c140528d6b8d19b6bbc4102051e0b9dce2e26f43a693bdeab2e1cd8e196b- 42510 バイト · 1017 行
macOS では、2 番目の手順に shasum -a 256 install.sh を使ってください。
バージョンを選ぶには --version を渡すか DWP_VIM_VERSION を設定します。指定できるのは正確なバージョン、'>=' による下限、latest です。ブランチやコミットは DWP_VIM_REF で指定します。古いリリースには、このページで説明している機能がすべて含まれているとは限りません。
Windows ではこれらのコマンドは使えません。手動の手順はリポジトリの README に記載されています。 Windows のインストール手順
インストーラは次の順に実行します。
- OS とパッケージマネージャを確認し、git、curl、Lua インタプリタが足りなければインストールします(
--skip-packagesを指定した場合は何もインストールしません)。 - バージョンを解決します。自身のリリースか、
--versionで指定されたリリースです。 --nvim X.Y.Zを指定すると、その Neovim リリースを~/.local/optにインストールし、Neovim が公開している SHA-256 で検証します。- 既存の Neovim 設定に手を付ける前に確認します。端末がない場合は、
--yesでその設定を退避するよう指示しない限り、何も変更せずに停止します。 - リポジトリを
~/.config/nvimにクローンします。すでにある場合は更新します。 - リポジトリ自身の
lua install.luaを実行します。 - プラグインをヘッドレスでインストールして確認するため、終了して開き直す手順はありません。
--strictを指定すると、プラグインのインストールの失敗や不完全なインストールはエラーになります。
ここで配布しているスクリプトは、v0.5.0 タグの install.sh とバイト単位で同一のコピーです。チェックサムはその隣の https://deepworkplan.com/vim/install.sh.sha256 で配布しているため、shasum -a 256 -c install.sh.sha256(Linux では sha256sum -c install.sh.sha256)でダウンロードを検証できます。別の配布元でも確認するには、GitHub リリースの SHA256SUMS にある install.sh の行と比較してください。すべてのオプションを一覧するには bash install.sh --help を実行します。
バージョンを選ぶ
デフォルトでは、インストーラは自身のリリースである v0.5.0 をインストールします。別のバージョンを選ぶには、DWP_VIM_VERSION を設定するか --version を渡します。どちらも同じ働きをするので読みやすい方を使ってください。フラグは環境変数より優先されます。どちらも次の形式を受け付けます。
| 形式 | 例 | インストールされるもの |
|---|---|---|
| 正確なバージョン | 0.5.0 または v0.5.0 |
そのリリース |
| 最低バージョン | '>=0.4.2' |
最低バージョン以上の最新の安定版リリース |
| 最新 | latest |
最新の安定版リリース |
上記のダウンロードとチェックサムの確認を終えたら、次のように実行します。
# exact version
DWP_VIM_VERSION=0.5.0 bash install.sh
bash install.sh --version 0.5.0
# minimum floor: the newest stable release at or above 0.4.2
DWP_VIM_VERSION='>=0.4.2' bash install.sh
# latest stable release
bash install.sh --version latest
シェルが > をリダイレクトとして解釈しないよう、最低バージョンは引用符で囲んでください。バージョンは安定版のリリースタグにのみ解決されます。ブランチやコミットを使うには、代わりに DWP_VIM_REF を設定します(DWP_VIM_REF=main は main に追従します)。バージョンと ref が食い違う場合はエラーになります。
コンテナと CI
端末がなく、多くの場合 root 権限もないイメージや CI ジョブでは、スクリプトをダウンロードして検証し、結果を再現可能にするフラグを付けて 1 ステップで実行します。
curl -fsSL -o install.sh https://deepworkplan.com/vim/install.sh && \
curl -fsSL -o install.sh.sha256 https://deepworkplan.com/vim/install.sh.sha256 && \
sha256sum -c install.sh.sha256 && \
bash install.sh --version 0.5.0 --nvim 0.12.5 --skip-packages --strict
--version 0.5.0はエディタのリリースを固定します。--nvim 0.12.5はその Neovim リリースを~/.local/opt/nvim-v0.12.5にインストールし、~/.local/bin/nvimとしてリンクして、Neovim が公開している SHA-256 で検証します(Linux と macOS)。--skip-packagesはシステムパッケージを一切インストールしません。イメージに git、curl、Lua があらかじめ含まれている必要があります。--strictは、ヘッドレスでのプラグインのインストールが失敗した場合や、プラグインが欠けている場合に 0 以外のコードで終了します。
すべてのフラグには対応する環境変数があります(DWP_VIM_VERSION、DWP_VIM_NVIM、DWP_VIM_SKIP_PACKAGES=1、DWP_VIM_STRICT=1)。--yes は、退避すべき Neovim 設定がイメージにすでに含まれている可能性がある場合にのみ追加してください。
要件とプラットフォーム
- Neovim 0.12 以降。自分でインストールするか、
--nvim X.Y.Zでインストーラに検証済みのリリースを追加させます(Linux と macOS)。 - Lua:
lua、lua5.4、luajitのいずれか。足りなければインストーラが追加します。 - macOS、Linux、WSL ではインストーラを実行できます。Windows にはリポジトリ README に手動の手順があります。winget で Neovim をインストールし、
v0.5.0タグを%LOCALAPPDATA%\nvimにクローンして、Git Bash からlua install.luaを実行します。 - GPL-3.0 ライセンス:自由に利用、研究、改変できます。
更新、バージョン固定、アンインストール
更新するには、より新しいリリースのインストーラを実行するか、bash install.sh --version latest を実行します。再実行すると、既存の DeepWorkPlan Vim のチェックアウトを選択したリリースへ移動し、ブランチはそのまま保持し、ローカルの変更をリセットすることはありません。ローカルの変更やコミットが失われる場合は、停止して何も変更しません。
リリースを固定するには --version を使います(バージョンを選ぶを参照)。ブランチやコミットには DWP_VIM_REF を設定します。リリースをおすすめします。v0.4.0 より前のリリースには、VS Code 風の操作、計画ブラウザ、Markdown ビューア、このインストーラが含まれていません。
# pin a specific release, here the previous one
curl -fsSL -o install.sh https://deepworkplan.com/vim/install.sh && \
curl -fsSL -o install.sh.sha256 https://deepworkplan.com/vim/install.sh.sha256 && \
shasum -a 256 -c install.sh.sha256 && \
bash install.sh --version 0.4.2
アンインストールするには、設定ディレクトリで lua delete.lua を実行します。設定、プラグイン、Mason のデータ、キャッシュと状態、インストーラがコピーしたフォントを削除し、Neovim 本体とシステムのパッケージはそのまま残します。
cd ~/.config/nvim && lua delete.lua
よくある質問
Neovim の設定は上書きされますか?
いいえ、あなたの承認なしには上書きされません。DeepWorkPlan Vim ではない設定が見つかると、対話実行では ~/.config/previous-deepworkplan-vim に移す前に確認します。端末がない場合は、--yes を渡して無人で退避させない限り、何も変更せずに停止します。そのバックアップ先がすでに存在する場合は、常に何も変更せずに停止します。
Windows で動きますか?
インストーラは Windows では動作しません。リポジトリ README の手動の手順を使うか、WSL の中でインストーラを実行してください。
使うのに Deep Work Plan は必要ですか?
いいえ。まずはエディタです。Deep Work Plan のスキルをインストールすることも必要とすることもありません。.dwp/plans/ フォルダが存在するまで、計画ブラウザに一覧するものがないだけです。
v7 の vim アドオンはどう使いますか?
Deep Work Plan v7 は、オンボーディング中にこのエディタを任意の vim アドオンとして提示します。アドオンはエディタの addon/surface.json を通じて既存のインストールを読み取り専用で検出し、固定されたチェックサム検証済みのインストールは、あなたの同意がある場合にのみ提示します。明示的な承認なしに既存の Neovim 設定を上書きすることはなく、必須になることもありません。
コーディングエージェントはどう使いますか?
ターミナルで動く人とコーディングエージェントのために作られています。キーバインドはコントラクトテストで固定されているため、筋肉記憶もエージェントの期待もアップデート後に保たれます。
どのバージョンが入りますか?
インストーラは、自身が属するリリース(現在は v0.5.0)をインストールします。別のバージョンを選ぶには、--version または DWP_VIM_VERSION で、正確なバージョン、>= による最低バージョン、または latest を指定します。DWP_VIM_REF はブランチまたはコミットを受け付け、DWP_VIM_REF=main を設定すると main に追従します。このページはリリース v0.5.0 を説明しており、ここに挙げたすべての機能を含んでいます。
ライセンスと由来は?
GPL-3.0 です。Andrés M Prieto による mu-vim から派生しており、クレジットはリポジトリに残されています。
ソースとライセンス
ソースは DeepWorkPlan Vim リポジトリ にあります。公開されており GPL-3.0 ライセンスで、mu-vim から派生しています。
関連するキットのエントリ
- Devcontainer — 再現可能な開発環境(最初のアドオン)
- Dailybot — チームに見える計画ライフサイクル報告(2 番目のアドオン)
- AI Diff Reviewer — 計画の最終レビューでのローカルレビュー(5 番目のアドオン)
- Herdr — Herdr のペインでピアエージェントにタスクを委任(v7)
- Agentkit — あらゆるターミナルのコーディングエージェントを 1 つのコマンドで扱い、ヘッドレス委任も可能(v7)