VSCode や Cursor の Integrated Terminal 使用時 に Git のコミットメッセージエディタを切り替える
知人に git commit
で何のエディタを使っているか訊かれて、答えたら感心されたので紹介する。
個人的には、ターミナルを使っているときはターミナルでそのまま編集したいし、Visual Studio Code (VSCode) や Cursor の Integrated Terminal を使っているときは、VSCode や Cursor 自体のエディタで編集したい。それを実現するために、状況に応じて起動させるエディタを分岐させるシェルスクリプトを書いて、エディタの代わりに指定している。
#!/bin/shset -eu
if [ -n "${CURSOR_TRACE_ID:-""}" ] && [ -x "$(command -v cursor)" ]then exec cursor --wait "$@"elif [ "${TERM_PROGRAM:-""}" = 'vscode' ] && [ -x "$(command -v code)" ]then exec code --wait "$@"elif [ -x "$(command -v nvim)" ]then exec nvim "$@"else exec vim "$@"fi
[core] editor = /path/to/commit-message-editor
Integrated Terminal 内にいるかどうかは、環境変数を見れば判断できるらしい (当時調べて書いたはずだが忘れた)。また、コミットメッセージの編集に使う上では、code
や cursor
に --wait
オプションを付けておけば編集が終わるまで待機するような挙動にできる。気が利いてる。