1. ホーム
  2. windows

[解決済み] Windows で Git を使用するためのエディタを設定するにはどうすればよいですか?

2022-03-16 16:24:16

質問

試しているのは Windows での Git . git commit" をしようとしたところ、このようなエラーが発生しました。

ターミナルがダサいけど、VISUALも EDITOR が定義されています。このような メッセージは、-m または -F オプションを使用してください。

それで、EDITORという環境変数が必要なことがわかりました。問題ありません。メモ帳を指すように設定しました。これで、ほぼうまくいった。デフォルトのコミットメッセージはメモ帳で開かれます。しかし、Notepadは裸の改行をサポートしていません。そこで、私は ノートパッドプラスプラス としてセットアップする方法がわかりません。 %EDITOR% を、Git で期待通りに動作させるために使用します。

私はNotepad++と結婚しているわけではありません。今のところ、どんなエディターを使ってもかまわないと思っています。ただ、以下のことができるようにしたいのです。 エディタでコミットメッセージを入力する コマンドラインではなく、( -m ).

WindowsでGitを使っている方。コミットメッセージを編集するために、どのようなツールを使っていますか?

解決方法は?

2015年9月更新(6年後)

git-for-Windowsの最終リリース(2.5.3) が含まれるようになりました。

設定することで git config core.editor notepad は、ユーザー が使用できるようになりました。 notepad.exe をデフォルトのエディタとして使用します。 .
設定方法 git config format.commitMessageColumns 72 はメモ帳ラッパーに拾われ、ユーザーがコミットメッセージを編集した後に改行されます。

参照 コミット 69b301b によって Johannes Schindelin ( dscho ) .

また、Git 2.16 (Q1 2018) では、エディターをスポーンする際に、ユーザーの編集終了を待っていることを伝えるメッセージを表示し、万が一エディターが を開くと、隠しウィンドウかどこか分かりにくい場所に移動してしまい、ユーザーは を失いました。

参照 コミット abfb04d (2017年12月07日)、および コミットa64f213 (2017年11月29日)による ラース・シュナイダー( larsxschneider ) .
ヘルプドバイ ジュニオ・C・ハマノ( gitster ) .
(によって統合されました。 ジュニオ・C・ハマノ--。 gitster -- コミット 0c69a13 , 2017年12月19日)

<ブロッククオート

launch_editor() : Git がユーザーの入力を待つことを示す

グラフィカルな GIT_EDITOR を開くGitコマンドによって生成されます。 で、ユーザー入力を待ちます(例:" git rebase -i の場合、エディタウィンドウは が他のウィンドウに隠れる可能性があります。
を見つめたままになってしまうかもしれません。 元の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 シェルからはできません .
(ただし、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 "$*"

この設定で、' git config --global --edit をDOSやGit Shellから、あるいは' git rebase -i ... ' を DOS または Git Shell から実行します。
Botコマンドは、notepad++の新しいインスタンスを起動します(そのため -multiInst オプション)、そしてそのインスタンスがクローズされるのを待ってから次に進みます。

は使用せず、'/' だけを使用していることに注意してください。 \ '. そして、私は オプション2を使ってmsysgitをインストールしました。 (を追加してください)。 git\bin ディレクトリを PATH 環境変数を使用し、Windowsに組み込まれたいくつかのツールを上書きしない)

notepad++のラッパーが.batという名前であることは重要ではありません。
npp.sh'という名前を付けて、それを [git]\cmd ディレクトリ(または環境変数PATHで参照されるディレクトリ)にあります。


こちらもご覧ください。


ライトファイア228 が追加されました。 コメント欄 :

N++が空白のファイルを開くだけで、gitがコミットメッセージを受け取らないという問題を抱えている人は、"を参照してください。 メッセージが空のため、コミットを中止する を変更します。 .bat または .sh というファイルを作成します。

"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>. 

これにより、notepad++は空の新しいファイルではなく、一時的なコミットファイルを開くように指示します。