環境:Ubuntu22.04 (WSL2)
問題
自分はVSCodeの統合ターミナルからgit commit
する際も、コミットメッセージをそのままVSCodeで書けるようにcore.editor
はcode --wait
にしていました。
しかしながら、他の端末アプリケーションからgitを操作する時に、VSCodeのような重厚なエディタが起動するのは鬱陶しい上、開いていたディレクトリなども消えてしまうので、代わりにnanoを起動させたいと思いました。
解決策その1
シェルスクリプトで頑張る方法です。
.gitconfig
[core]
editor = "`[ \"$TERM_PROGRAM\" = vscode ] && echo code --wait || echo nano`"
TERM_PROGRAM
を設定しない端末があるので、構文エラーを避けるために、ダブルクオートで囲っています。
自分の環境だとdashで実行されていました。恐らく/bin/shで実行するようになっている?
解決策その2
VSCodeのターミナルのみで有効な環境変数を設定できるので、それを利用する方法です。core.editor
にはnano
を設定しておき、settings.json
(リモート設定)には以下のように記述を追加します。
settings.json
"terminal.integrated.env.linux": {
"GIT_EDITOR": "code --wait"
}