Skip to main content

One post tagged with "macos"

View All Tags

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