🐥

Terminal.app で Claude Code を使う設定

に公開

最近、次の理由で VSCode 組み込みターミナルでなく、 Terminal.app で Claude Code を使いはじめたのだが、そのためのちょっとした設定をまとめる。

  • VSCode 内はペインが多いので、切り替えショートカットの設定を考えるのがめんどくさい
    • ウィンドウ切り替え Command + Tab ですむ Terminal.app でいいかな
  • 組み込みターミナルだとスクロールがトップに戻ってしまう問題がある

設定

Option + Enter で改行

まず Terminal.app だと改行するために次の設定を入れる必要がある。

Use Option as Meta key

これは公式にも載っている。

https://docs.anthropic.com/ja/docs/claude-code/terminal-config#option%2Benterの設定(vs-code、iterm2またはmacos-terminal-app):

Shift + Enter で改行

Karabinar-Elements で実現する。

https://karabiner-elements.pqrs.org/

Complex Modifications から次の設定を追加する。

{
  "description": "Shift + Enter -> Option + Enter in Terminal.app",
  "manipulators": [
    {
      "conditions": [
        {
          "bundle_identifiers": ["com.apple.Terminal"],
          "type": "frontmost_application_if"
        }
      ],
      "from": {
        "key_code": "return_or_enter",
        "modifiers": {
          "mandatory": ["left_shift"],
          "optional": ["any"]
        }
      },
      "to": {
        "key_code": "return_or_enter",
        "modifiers": ["left_option"]
      },
      "type": "basic"
    }
  ]
}

これは Terminal.app にフォーカスがあたっているときのみ Shift + Enter -> Option + Enter の変換をかけている。 Complex Modifications で指定可能な特定アプリでのみ動くマッピングを使っている。

やってみて

割と快適。キーボードで操作が完了しやすくなった。

ただ、 Claude Code 自体もなにかの拍子でスクロールがかなり上に飛ぶことがわかった。プランの提示時だったり、プランの approve 直後だったりで起こる。頻度が少ないので放置しているが、これもいつか治るだろうか。

GitHubで編集を提案

Discussion