[解決済み] Windows で Git を使用するためのエディタを設定するにはどうすればよいですか?
質問
試しているのは 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で参照されるディレクトリ)にあります。
こちらもご覧ください。
- git diff' の出力を visual diff プログラムで表示するにはどうすればよいですか? 一般論として
- msysgit / gitk で DiffMerge を設定するにはどうすればよいですか? 外部ツール(DiffMerge、WinMerge)の別の例については、こちらをご覧ください。
ライトファイア228 が追加されました。 コメント欄 :
N++が空白のファイルを開くだけで、gitがコミットメッセージを受け取らないという問題を抱えている人は、"を参照してください。 メッセージが空のため、コミットを中止する を変更します。
.bat
または.sh
というファイルを作成します。
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
これにより、notepad++は空の新しいファイルではなく、一時的なコミットファイルを開くように指示します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Windowsの能書きは?
-
[解決済み] C:\WINDOWS ASSEMBLYの中にあるものは何?[閉店]
-
.NET フレームワークのインストールに失敗しました 0x800c0006 解決方法
-
[解決済み] Ahkファイルから.exeを生成すると、Heur.AdvML.Bが表示される。
-
[解決済み] git に自分の好きなエディタを使わせてコミットするにはどうしたらいいですか?
-
[解決済み] git diff の出力を自分の好みの diff ツール/ビューアで表示するにはどうすればよいですか?
-
[解決済み] Visual Studio Codeをgitのデフォルトエディタとして使用するには?
-
[解決済み】Sublime TextをGitのデフォルトエディタにするには?
-
[解決済み】Vim for Windows - ファイルを保存して終了するには何を入力すればよいのですか?
-
[解決済み】msysgitでNotepad++(またはその他)を使用するにはどうすればよいですか?