ちょっとした隙間を埋める話。
Hack - 橘玲
ハッカーの万能具合は気になるけど、面白かった。
wezterm : title 判定
wezterm で分割した pane で Vim を表示している判定が家 Mac だと動いていたのに、会社 Windows + Git Bash では動かなくて再調査。
$ wezterm cli list --format json | \ jq -r '.[] | "\(.pane_id)\ttitle=\(.title // "")"' 2 title=zsh 3 title=Vim 6 title=Vim
家 Mac では title で判定できていたけど、Git Bash では title が取れていなかった。
if has('unix') set title set titlestring = "vim" endif
と定義することで解決。title が取れなくて vim ではなく sh と判断されていた。
最近の AI (codex) を使った開発
※ このエントリーは AI を使用していません (って書くのが流行りそう)
近況
wezterm で画面分割して左に codex、右に vim を開いている。terminal に引きこもろうかと思ってたけど、慣れなのかどうしても gvim の方が使い勝手がよく感じてしまうので引きこもりはやめた。
SNS のタイムラインを見ていると Claude の評判が良いように感じるので Claude Pro を再契約。が、codex の方が賢く感じるので Claude はまた辞める予定 (Opus でぶん回し続けられると違う??)。
Claude を久しぶりに触っていて良いなと思ったのが Plan モード。Plan のマークダウンファイルを生成する場所がどうなのはあるけど、やろうとしてることを事前に把握できるので良い。以前は直接編集が始まって diff 見せられて ok するだけになっていて修正に納得感があまりなかった。今は Plan を作って読んで、気になるところを指摘したり、編集を始めてる際にも気になる場合は Plan に反映させて見直したりといったことをしている。今の仕事もこんな感じなので、進め方が馴染んでるのかも。
codex でもまずは計画を立てるように AGENTS.md に記載している。
- 修正を始める前に計画をマークダウンファイルで .plans フォルダ配下に生成してください。 - 計画のファイル名は連番とし、1つ目を 001 始まりとして修正にあった適切なファイル名としてください。 - 計画のフォーマットは `001-windows-makefile-conditional.md` を参照すること。 - 具体的なファイル編集をする前に、修正案を提示すること。
フォーマットはいい感じにできたなと思うものに随時書き換えているけど、なにか良いフォーマットがないかなぁとは思う。Mac で codex で動かしてた場合は具体的なコードについても出力されていたのだけど、Windows + GitBash + codex の場合はかなり簡易的な内容になってるのも気になる。いい感じのフォーマットを見つけていきたい。
プロンプトは直したいことを書き、最後に 計画を立ててください を加えて送信する。
.plans フォルダ配下にファイルが生成されるので、それを見ながら自分の理解を深める。
仕事でプロダクトのコードを書くことがほぼなくなり、仕事に関する補助的なツールを作ったり、個人的な便利ツールを作ったりで息抜きをしている。Plan をまず作成する運用をしている中でちょっとした改善ものを以下に記載する。
分割 Pane の同期
プロジェクトを複数行き来していることが多いので、ターミナルを分割して表示している Vim の Pane がシェルで移動した結果のディレクトリが一致しなくなることが多い。Vim から辿るのは苦でないけどひと手間かかるのを改善。
sync-cwd() { local cwd vpath cwd=$(pwd) # Vim の "..." 文字列向けにエスケープ vpath=${cwd//\\/\\\\} # \ -> \\ vpath=${vpath//\"/\\\"} # " -> \" wezterm cli list --format json \ | jq -r '.[] | "\(.pane_id)\t\(.title // "")"' \ | while IFS=$'\t' read -r pane_id title; do if [[ "$title" == Vim* || "$title" == *vim* || "$title" == *nvim* ]]; then printf '\x03\x1b\x1b:execute "edit " . fnameescape("%s")\r' "$vpath" \ | wezterm cli send-text --no-paste --pane-id "$pane_id" else printf 'cd %q\r' "$cwd" \ | wezterm cli send-text --no-paste --pane-id "$pane_id" fi done }
シェルで移動後に sync-cwd を実行することで、他の Pane のカレントディレクトリを変更する。Vim を開いていた場合は、該当ディレクトリのファイルリストを表示する。僕は vimfiler を使っているので、vimfiler でファイルのリストが表示される。
vim-right
wezterm の画面分割で左にシェルを右に vim をなので、そんな名前 (適当)。
function vim-right() { local target="$1" [[ -z "$target" ]] && return 1 local abspath abspath="$(realpath "$target")" || return 1 local pane_id pane_id="$( wezterm cli list --format json \ | jq -r ' (map(select(.is_active))[0].tab_id) as $tid | map(select(.tab_id==$tid and (.title|test("vi|vim|nvim"; "i")))) | .[0].pane_id // empty ' )" [[ -z "$pane_id" ]] && return 1 # ESC x2 で Normal に戻す → :e を実行(改行込み)。paste 制御を付けない wezterm cli send-text --pane-id "$pane_id" --no-paste $'\x1b\x1b:e '"${abspath}"$'\n' wezterm cli activate-pane --pane-id "$pane_id" }
Plan ファイルを Vim ですぐ開けるように、シェル側から vim-right {paht} を実行していたりしたけど、codex を開始すると連携がイマイチなので (できないことはないけど) 、たまにしか使ってない。sync-cwd でディレクトリを合わせてから codex を開始すればいいのでファイルを開くまでの手間は許容範囲。
※ codex コマンドを実行する前に sync-cwd が実行されるようにしておけば、さらに便利じゃないかと今思ったので後で試す。
Shiba.app
vim でマークダウンを見るのもいいけど、html でレンダリングした結果の方が読みやすい。いい感じのマークダウンビューアがないかと探した結果、久々に見に行った Shiba が条件にぴったりだった。typora は編集できる点もよかったけど vim ライクなキーバインドができないのであきらめ。
条件
- アウトラインが表示される
- vim ライクなキーバインドが使える
- できるだけ軽量
とはいえ、気になるところがちょろちょろあるので fork して追加実装してみた。codex で Plan ファイルを作る運用で。
追加機能
j/k/C-d/C-uのスクロール量を可変にできる- ファイルパスを指定してアプリ起動、再読み込みできる
- ファイルが切り替わった場合はスクロール位置を先頭にする
合わせて Vim でマークダウンファイルを開いている際に :Shiba を実行すると、Shiba.app で見れるようにコマンドを定義した。
command! Shiba call s:open_with_shiba() function! s:open_with_shiba() abort let file = expand('%:p') if empty(file) echoerr 'no file' return endif if has('mac') silent execute '!open -a "Shiba.app" ' . shellescape(file) else let shiba = 'shiba.exe' call job_start([shiba, file]) return endif redraw! endfunction
まとめ
けっこう、満足している。
2026
例年は年末に振り返りして年始に今年はどうしようかと書くのだけど、そういうの全くやる気が出ない程度にだらだらしてた。まずは安静を取り戻す。
ついでに直近にやってたあれこれ。
dropbox plus を解約
- 昔ノルマ達成で追加された容量が残っていて 10G 使える
Codex によるコーディング?がいまいち楽しくないと感じるので Claude に戻ってみた
- ついでに Chat GPT の plus プランを解約したら、一ヶ月無料で plus を継続できると出たので無料継続しといた
- Claude は使用制限があっという間にくるっていう別の不安感がある。もうちょい緩和されないものか。
ドラクエ7 先行プレイ版クリア
- リメイク系は毎回途中で飽きるので始めるか悩み中だったけど。ドラクエシリーズのリメイクで費用を捻出しつ検証とスキルアップを踏まえて最新作につなげようとしてるのかなぁという感想。
スト6
- マネモン(Master)と戦ってる方が楽しいと思う程度にランクマで勝てずに相変わらずプラチナとゴールドを行ったり来たりしてる。スティックぐりぐりしてる左手よりボタン押すだけのはずの右手(特に手首)が痛い。Switch2 のプロコンのせいなのか。強ボタンがちょっと辛い。GL に大パンチ当てたらコンボ出やすくなったけど。インパクトは返せないし返される。
Inkdrop v6.0.0-canary
- 動くけど、色々カスタマイズしたりだ何だあるから現状で使うのまだまだ。とりあえずテーマが変えられないのはなんだろ。
fyop+
- なんとかなれー (切実)
Re:ゼロから始める異世界生活 短編集13
ハインケルさんの過去が読めた。



