2015 年 9 月更新 (6 年後)
git-for-Windows (2.5.3)の最後のリリースには、次のものが含まれています。
を構成することによりgit config core.editor notepad
、ユーザーはデフォルトのエディターとして使用できるようnotepad.exe
になりました。
構成git config format.commitMessageColumns 72
はメモ帳ラッパーによって取得され、ユーザーが編集した後にコミット メッセージを改行します。
Johannes Schindelin ( )によるcommit 69b301bを参照してください。dscho
また、Git 2.16 (2018 年第 1 四半期) では、エディターが非表示のウィンドウまたはわかりにくい場所で開いてユーザーが迷子になった場合に備えて、エディターを生成するときに、ユーザーが編集を完了するのを待っていることをユーザーに通知するメッセージが表示されます。
Lars Schneiderによる commit abfb04d ( 2017 年 12 月 7 日) とcommit a64f213 (2017 年 11 月 29 日)を参照してください。
手伝い:浜野ジュニオC ( ) . ( 2017 年 12 月 19 日にコミット 0c69a13でJunio C Hamanoによってマージされました)larsxschneider
gitster
gitster
launch_editor()
: Git がユーザー入力を待機していることを示します
GIT_EDITOR
開いてユーザー入力 (" " など) を待機する Git コマンドによってグラフィックが生成されるとgit rebase -i
、エディター ウィンドウが他のウィンドウによって隠される場合があります。
ユーザーは、Git を続行する前に別のウィンドウと対話する必要があることに気付かずに、元の Git ターミナル ウィンドウを見つめたままになる可能性があります。このユーザーには、Git がハングしているように見えます。
端末が最後の行の消去をサポートしている場合、Git が元の端末でエディターの入力を待機しているというメッセージを出力し、エディターが戻ったときにそれを取り除きます
元の答え
gitバージョン1.6.2.msysgit.0.186.gf7512とNotepad ++ 5.3.1でテストしました
EDITOR 変数を設定する必要がないことを好むので、次のことを試しました。
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
それは常に与えます:
C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.
以下を含む npp.bat を定義した場合:
"c:\Program Files\Notepad++\notepad++.exe" %*
そして次のように入力します。
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
DOS セッションからのみ機能しますが、 git shell からは機能しません。
(core.editor 構成メカニズムでは、" start /WAIT...
" を含むスクリプトは機能せず、新しい DOS ウィンドウを開くだけであるというわけではありません)
ベネットの答えは、スクリプトの追加を避ける可能性について言及していますが、単純な引用符の間でプログラム自体を直接参照する可能性があります。スラッシュの向きに注意!パス名でフォルダーを区切るには/
NOTを使用してください。\
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
または、64 ビット システムを使用している場合:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
しかし、私はスクリプトを使用することを好みます (以下を参照): そうすれば、git config
.
(スクリプトを使用した)実際の解決策は、次の
ことを認識することでした。構成ファイルで参照しているのは、実際にはシェル(/bin/sh
)スクリプトであり、DOSスクリプトではありません。
だから何がうまくいくのですか:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
とC:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
また
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
その設定で、 DOS や Git Shell から ' ' を実行したり、DOS や Git Shell からgit config --global --edit
' ' を実行したりできますgit rebase -i ...
。
ボット コマンドは、notepad++ の新しいインスタンス (したがって-multiInst
' オプション) をトリガーし、そのインスタンスが閉じられるのを待ってから続行します。
「/」のみを使用していることに注意してください\
。オプション 2 を使用して msysgit をインストールしました(git\bin
ディレクトリをPATH
環境変数に追加しますが、組み込みの Windows ツールをオーバーライドすることはありません)。
notepad++ ラッパーの名前が .bat であることは重要ではありません。
「npp.sh」という名前を付けて、[git]\cmd
ディレクトリ(またはPATH環境変数で参照されるディレクトリ)に配置することをお勧めします。
以下も参照してください。
lightfire228はコメントに追加します:
N++ が空のファイルを開くだけで、git がコミット メッセージを取得しないという問題がある場合は、「メッセージが空のためコミットを中止する.bat
」を参照してください。または.sh
ファイルを次のように変更します。
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
これにより、空の新しいファイルではなく、一時コミット ファイルを開くように notepad++ に指示されます。