macOSとUbuntuで共通設定を利用し、OS固有の設定だけを個別に読み込みます。
設定ファイルのシンボリックリンクだけを作成します。
./setup.shパッケージとNeovimプラグインもインストールする場合は次を実行します。
./setup.sh --packagesmacOSではHomebrewがインストール済みである必要があります。Brewfileと
Brewfile.macosからNeovimを含むパッケージを導入します。Ubuntuでは
packages/ubuntu.txtのパッケージに加え、Neovim公式のstableバイナリを
/optへインストールします。x86_64とARM64に対応しています。
uvxはmacOSではHomebrew、Ubuntuではuv公式インストーラーから導入します。
Neovimの設定は~/.config/nvimへ、tmuxの設定は~/.tmux.confへ、
Herdrの設定は~/.config/herdrへリンクされます。初回セットアップ時に
lazy.nvimと各プラグインが自動でインストールされます。
HerdrはmacOSではHomebrew、Ubuntuでは公式インストーラーを使って
~/.local/bin/herdrへ導入します。既存のHerdrがある場合、Ubuntuのセットアップは
上書きしません。直接インストール版の更新はherdr update、Homebrew版は
brew upgrade herdrを使用してください。HerdrとCopilot CLIが利用可能な場合は、
両者のセッション連携も未導入時に自動でインストールします。
シェル設定はzsh/common.zsh、zsh/macos.zsh、zsh/ubuntu.zshに分かれています。
端末や会社固有の設定は、Git管理外の~/.zshrc.localと
~/.gitconfig.localへ記述できます。
<Leader>はSpaceキーです。
| 操作 | キー/コマンド |
|---|---|
| ファイルツリーを開閉 | Ctrl-n |
| 現在のファイルをツリー内で表示 | <Leader> e |
| ファイルを検索 | <Leader> f f |
| ファイル内容を全文検索 | <Leader> f g |
| 開いているバッファを検索 | <Leader> f b |
| ウィンドウ間を移動 | Ctrl-h/j/k/l |
| ファイルを保存 / ウィンドウを閉じる | <Leader> w / <Leader> q |
| 定義 / 参照へ移動 | gd / gr |
| シンボル名を変更 | <Leader> r n |
| コードアクション / フォーマット | <Leader> c a / <Leader> f m |
| 診断を表示 / 前後へ移動 | <Leader> d / [d / ]d |
| 行コメントを切り替え | gcc(範囲選択時はgc) |
| Git操作画面 | :Git |
入力中に補完候補が自動表示され、Ctrl-n/Ctrl-pで選択し、Enterで確定します。
Ctrl-Spaceで手動表示、Ctrl-eで候補を閉じられます。LSPによるコード補完に加え、
スニペット、パス、バッファ内の単語も補完できます。
以下の言語サーバーはMasonで自動インストールされ、対象のファイルを開くと起動します。 JavaScript/TypeScriptはJSX/TSX、JSONはJSONCにも対応しています。
| 言語 | 言語サーバー |
|---|---|
| Go | gopls |
| Python | pyright |
| YAML | yaml-language-server |
| JSON / JSONC | json-lsp |
| Rust | rust-analyzer |
| Bash | bash-language-server |
| JavaScript / TypeScript | typescript-language-server |
Neovim 0.11.3以降と、Node.js/npmが必要です。Node.jsは24以降を使用してください。
./setup.sh --packagesでパッケージを導入できますが、Ubuntu標準のNode.jsやGoが
古い場合は、言語サーバーの要件を満たすバージョンへ別途更新してください。
初回起動時はネットワーク接続が必要です。:Masonでインストール完了を確認してから
ファイルを開いてください。失敗した場合は:MasonLogで原因を確認できます。
GoやRustのプロジェクト解析には、それぞれ言語サーバーが対応するバージョンの
Go、Rust/Cargoのツールチェーンも必要です。
Pythonの仮想環境は有効化してからNeovimを起動してください。
YAML/JSONのキーや値の補完はスキーマに応じて提供されます。独自スキーマを使う場合は、
YAMLでは# yaml-language-server: $schema=./schema.json、
JSONでは"$schema": "./schema.json"で指定できます。
プラグイン管理にはlazy.nvimを使用します。
| 操作 | コマンド |
|---|---|
| 管理画面を開く | :Lazy |
| 更新を確認 | :Lazy check |
| 全プラグインを更新 | :Lazy update |
| 不要なプラグインを削除 | :Lazy clean |
| Neovim/LSPの状態を確認 | :checkhealth / :LspInfo |
プレフィックスキーはデフォルトのCtrl-bではなくCtrl-tです。以下の操作は、
特記がない限りCtrl-tを押して離してから次のキーを押します。
| 操作 | キー |
|---|---|
| 新しいウィンドウを作成 | Ctrl-c |
| 次のウィンドウへ移動 | Ctrl-t |
| 前後のウィンドウへ移動 | Ctrl-h / Ctrl-l |
| ペインを左右に分割 | i |
| ペインを上下に分割 | v |
| ペイン間を移動 | h / j / k / l |
| ペインをリサイズ | H / J / K / L |
| 全ペインへ同じ入力を送る / 解除 | s / p |
| コピーモードを開始 | [ |
| 選択開始 / コピー | v / y |
| 設定を再読み込み | r |
tmuxセッションの基本操作は、tmux new -s <名前>で作成、
Ctrl-t dでデタッチ、tmux lsで一覧、tmux attach -t <名前>で再接続です。
マウスとコマンド操作の両方で、選択範囲をシステムのクリップボードへコピーできます
(macOSはpbcopy、Linuxはwl-copyまたはxclip)。
- マウス: ドラッグして範囲選択し、ボタンを離すと自動でコピーされます。 ダブルクリックで単語選択、トリプルクリックで行選択も同様に自動コピーされます。
- コマンド:
[でコピーモードに入り、vで選択開始、yまたはEnterでコピーします。 - 貼り付けは通常の
Cmd-v(ターミナル側のペースト)を使用します。
Herdrはtmuxと同様にプロセスをバックグラウンドで維持しながら、AI coding agentの
状態をworkspace横断で表示できるmultiplexerです。プロジェクトのディレクトリで
herdrを実行すると起動し、デタッチ後にもう一度herdrを実行すると再接続します。
プレフィックスはtmuxと同じCtrl-tです。以下はCtrl-tを押して離してから
次のキーを押します。
| 操作 | キー |
|---|---|
| 新しいタブを作成 | Ctrl-c(またはc) |
| 次のタブへ移動 | Ctrl-t / Ctrl-l / n |
| 前のタブへ移動 | Ctrl-h / p |
| ペインを左右に分割 | i |
| ペインを上下に分割 | v |
| ペイン間を移動 | h / j / k / l |
| ペインをリサイズ | H / J / K / L |
| ペインを閉じる / ズーム | x / z |
| コピーモードを開始 | [ |
| workspace一覧を開く | w |
| 新しいworkspaceを作成 | N |
| サイドバーを開閉 | b |
| 設定を再読み込み | r |
| デタッチ | d(またはq) |
| 有効なキー一覧を表示 | ? |
コピーモードもtmuxのvi操作に近く、h/j/k/lで移動、vで選択開始、
yでコピー、qで終了します。マウスでペイン選択、境界のドラッグ、
右クリックからの分割も可能です。tmuxの同期入力に相当する標準操作はないため、
複数agentへの作業依頼には後述のHerdr skillまたはCLIを使用します。
タブ右側には、現在時刻、アクティブなペインのGit branch、現在のKubernetes
context/namespaceを表示します。Kubernetesへ接続していない場合やGit管理外では
該当項目を省略します。サイドバーのworkspace行にもGit branchとahead/behind、
agent行にはagent名とworking / blocked / done / idleの状態を表示します。
- リポジトリごとにworkspaceを1つ作り、実装、テスト、ログ、agentを別ペインまたは
タブに分けます。
Ctrl-t wでプロジェクト間を移動すると、停止中のagentを 探し回らずに済みます。 - サイドバーのGit workspaceからworktreeを作成し、機能や修正ごとにagentの 作業ディレクトリを分離します。branchの衝突や未コミット変更の混在を避けられます。
- 長時間処理はデタッチして継続し、戻ったらagentの状態を確認します。マシン再起動後は レイアウトが復元され、対応agentはintegrationが記録したセッションを再開できます。
- SSH先も扱う場合は
herdr --remote <host>を使います。時刻、hostname、 Kubernetes接続先はリモート側の値として表示されます。
Herdr内のcoding agentがペイン作成、コマンド実行、出力確認、他agentとの協調を 安全に行えるよう、公式skillのグローバル導入を推奨します。
npx skills add herdrdev/herdr --skill herdr -gskillはHERDR_ENV=1のときだけHerdrを操作する安全策を含みます。プロジェクト単位で
導入する場合は-gを外してください。GitHub Copilot CLI用の公式integrationは
setup.shが自動で導入します。手動で導入または状態確認する場合は次を実行します。
herdr integration install copilot
herdr integration statusClaude CodeやCodexなどを使う場合は、copilotをclaudeまたはcodexへ
置き換えます。設定変更後はherdr server reload-config、現在の全キー確認は
Herdr内でCtrl-t ?を使用してください。