OpenCodeでCtrl+Hが効かない問題を解消する
· 2 min read
まとめ
- macOSの一部ターミナル(Terminal.app等)ではCtrl+Hが
^H(0x08)として送られるが、OpenCodeのデフォルトkeybindsには含まれていない ~/.config/opencode/opencode.jsonにinput_backspaceの設定を追加することで解決- 端末によってBackspaceの送信方法が異なるのは歴史的経緯によるもの
問題
OpenCodeで、Ctrl+Hを押しても文字が削除されない。
readline/emacs文化圏ではCtrl+Hはbackspaceとして機能するのが一般的だが、OpenCodeのデフォルト設定ではinput_backspaceにctrl+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"
}
}