この記事は Zenn にも投稿しています。

Gemini CLI や Claude Code など、ターミナルで対話する AI ツールが増えてきました。 長文のプロンプトを入力する際、ターミナルの入力欄だけでは編集しづらいことがあります。

そんな時、editprompt というツールを使うと、CLI の入力を一時的に $EDITOR (Vim など) で編集できるようになります。

しかし、残念ながらこのツールは Windows では動作しないようです。 そこで、AutoHotkey を使って同様の機能を実装してみました。

AutoHotkey スクリプト

実装したスクリプトは以下の通りです。 F7 を押すと、エディタを開き、保存して閉じるとターミナルにペーストされます。

289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
; editprompt
F7::
{
  tempFile := EnvGet("TEMP") . "\editprompt.md"
  if FileExist(tempFile) {
    FileDelete(tempFile)
  }

  ; Run nvim and wait for it to close.
  RunWait('nvim "' . tempFile . '" -c "startinsert"')

  if FileExist(tempFile) {
    prompt := FileRead(tempFile, "UTF-8")
    FileDelete(tempFile)

    A_Clipboard := prompt
    Send("^v")

    ToolTip("✅ Complete send prompt")
    SetTimer(() => ToolTip(), -2000)
  }
}

editor は nvim 固定で書いちゃってるけど、そこを変えれば他のでもいけるはず!

これで、Windows のターミナルでも Vim などの使い慣れたエディタで快適にプロンプトを書くことができます。