うっかり git commit
や git rebase -i
で vim 起動してしまったがキャンセルしたいときは
:cq
でエラーコードとともに vim を終了させる。
エラーコード 1
を受け取った Git は処理を進めず終了する。
Git のコード
ついでに Git のコードをちょっと読んでみる。
git rebase だと git-rebase.sh の run_specific_rebase でエラーコードのハンドリングをしているようだ。
git commit は… builtin/commit.c の cmd_commit の中にありそうだと思いつつC言語力が低いのでパッと読んでよくわからなかった。なので試しに失敗してみて、エラーメッセージから追ってみた。
$ g cm # vim で :cq する error: There was a problem with the editor 'vim'. Please supply the message using either -m or -F option.
There was a problem with the editor
でコード検索をかけると、このメッセージは editor.c の launch_editor から来ているとわかった。
commit.c の中でこのメソッドを呼んでいるのは… ここか。2行目のエラーメッセージから探したほうが早かったようだ。