Skip to main content

2 posts tagged with "terminal"

View All Tags

Claude Code/OpenCode/CodexでCtrl+Zが地味に便利

· One min read

まとめ

  • Claude Code / OpenCode / Codex CLI は Ctrl+Z でサスペンドして fg で復帰できる
  • vimでCtrl+Z → シェル作業 → fgで戻る、と同じ要領
  • セッションやコンテキストは維持される
  • lsgit status など、ちょっとしたコマンドでディレクトリの状況確認したいときに重宝する

Ctrl+Z と fg の仕組み

Unixのジョブコントロール機能。

  • Ctrl+Z: フォアグラウンドのプロセスにSIGTSTPシグナルを送り、サスペンド(一時停止)する
  • fg: サスペンドしたジョブをフォアグラウンドに戻す

使い方

# AI CLIで作業中に Ctrl+Z
[1]+ Stopped claude

# シェルで好きなコマンドを実行
$ ls
$ git status
$ git diff

# fg で復帰
$ fg

対応状況

ツールCtrl+Z サスペンド
Claude Code
OpenCode
Codex CLI

OpenCodeでCtrl+Hが効かない問題を解消する

· 2 min read

まとめ

  • macOSの一部ターミナル(Terminal.app等)ではCtrl+Hが^H(0x08)として送られるが、OpenCodeのデフォルトkeybindsには含まれていない
  • ~/.config/opencode/opencode.jsoninput_backspaceの設定を追加することで解決
  • 端末によってBackspaceの送信方法が異なるのは歴史的経緯によるもの

問題

OpenCodeで、Ctrl+Hを押しても文字が削除されない。

readline/emacs文化圏ではCtrl+Hはbackspaceとして機能するのが一般的だが、OpenCodeのデフォルト設定ではinput_backspacectrl+hが含まれていないため認識されない。

原因

ターミナルによってキー入力の送信方法が異なる:

  • Terminal.app(macOS標準): Ctrl+Hを^H(0x08)として送信(Backspaceと同一視)
  • iTerm2 / Ghostty等: kitty keyboard protocol等の拡張で修飾情報付きで送信可能

OpenCodeのデフォルトkeybindsはbackspace,shift+backspaceのみで、ctrl+hが含まれていない。

解決方法

~/.config/opencode/opencode.jsonを作成または編集し、以下の設定を追加:

{
"$schema": "https://opencode.ai/config.json",
"keybinds": {
"input_backspace": "backspace,shift+backspace,ctrl+h"
}
}

ref