WindowsでGitを使用できるようにエディターを設定するにはどうすればよいですか?


561

WindowsでGitを試しています。「git commit」を試すようになり、次のエラーが発生しました。

端末はダムですが、VISUALもEDITORも定義されていません。-mまたは-Fオプションを使用してメッセージを指定してください。

そこで、EDITORと呼ばれる環境変数が必要であることがわかりました。問題ない。メモ帳を指すように設定しました。ほぼ問題なく動作しました。デフォルトのコミットメッセージがメモ帳で開きます。ただし、メモ帳は裸の改行をサポートしていません。私は外に出てNotepad ++を手に入れ%EDITOR%ましたが、Gitで期待どおりに動作するようにNotepad ++をとしてセットアップする方法を理解できません。

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

WindowsでGitを使用している方:コミットメッセージを編集するためにどのツールを使用し、それを機能させるために何をしなければなりませんでしたか?


7
TLDR:エディタの実行ファイルへのパスを単一引用符で囲む置く
ヨーヨー

おそらく役に立たないでしょうが、FWIW、私は通常のメモ帳を使用しています。私はそれを機能させるために何もしませんでした。デフォルトでそのまま機能しました...
BrainSlugs83

11
2015年9月の更新:シンプルgit config core.editor notepadで十分です。以下の私の最新の回答を参照しください。
VonC、2015

JEdi​​tはgitに適したエディタではないことを簡単に述べておきます。JEdi​​tは、複数のファイルに対しても1つのインスタンスのみを開きます。すでに開いている場合は、gitによって新しいファイルが開かれますが、gitを続行するには、JEditを完全に閉じる必要があります。JEdi​​tがコミットメッセージを編集するために別のインスタンスを開くようにするコマンドラインオプションはありません。
GrantRobertson

誰かがSublime Text 3を気に入っている場合に備えて、WindowsおよびLinux向けに構成した方法の説明を次に示しますgitエディターとしてのSublime Text 3の最適な設定(WindowsおよびLinuxの手順)。@yoyo、任意のテキストエディターを使用するためのTLDR:エディター実行可能ファイルへのパスを単一引用符で囲み、Windows実行可能ファイルへのパス名にバックスラッシュ(\)ではなくスラッシュ(/)を使用します。
ガブリエルステープルズ

回答:


562

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四半期)は、エディターを起動したときにユーザーが編集を完了するのを待っていることをユーザーに通知するメッセージを表示します。

参照してくださいabfb04dコミット(2017年12月7日)、およびa64f213コミットすることにより(2017年11月29日)ラース・シュナイダーを(larsxschneider
協力者:ジュニオC浜野(gitster
(合併によりJunio C浜野- gitster-0c69a13コミットし、2017年12月19日)を

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

GIT_EDITORユーザー入力(「git rebase -i」など)を開いて待機するGitコマンドによってグラフィカルが生成されると、エディターウィンドウが他のウィンドウによって隠される場合があります。
ユーザーは、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ウィンドウを開くだけです)


ベネットの答えは、スクリプトの追加を回避する可能性について言及していますが、単純な引用符でプログラム自体を直接参照しています。スラッシュの方向に注意してください!パス名でフォルダーを区切ら/ないでください\

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 --editDOSまたはGit Shell git rebase -i ...から' 'を実行できます。または、DOSまたはGit Shellから' 'を実行できます。
ボットコマンドは、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 ++は新しい空のファイルではなく一時コミットファイルを開くように指示されます。


シェルスクリプトでは、$ *を二重引用符で囲む必要があります。二重引用符がないと、スペースを含むパスでは正しく機能しません。徹底的な説明をありがとう-私は初心者プログラマのためにWindowsにgit(および他の多くのもの)をインストールしています。コマンドラインは、viコマンドを学習させないでこなすのに十分なほど困難です。
Sarah Mei、


1
ベネットの回答に続いて、スクリプトを作成する必要はありません。引用符内でアポストロフィを使用することができます。 "
Tobias Kienzler '22

@Tobias:確かに、私は彼の答えを私の中に含めましたgit config。また、私の設定でスクリプトを参照することを好む理由も含めています。
VonC、2010

6
@NateGlenn短縮されたdir /X同等の " PROGRA~2"を " Program Files (x86)"に使用します。これは、Windowsでクロスプラットフォーム互換のツールを使用するときに慣れ、空白をつぶすことができます。
JJ Zabkar 2013年

300

ダレンの答えに基づいて、Notepad ++を使用するには、これを簡単に実行できます(すべて1行で)。

git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

当然、このC:/Program Files/Notepad++/notepad++.exe部分はシステム上のNotepad ++実行可能ファイルへのパスである必要があります。たとえば、かもしれませんC:/Program Files (x86)/Notepad++/notepad++.exe

それは私にとって魅力のように機能します。


10
私も!ところで、これらのスイッチはC:/ Program Files / Notepad ++ / user.manual / documentation / notepad-user-manual / command-line.htmlで説明されています
Andrew Swan

23
Notepad ++が `C:\ Program Files(x86)`
mindless.panda

8
x64 Windowsの場合:git config --global core.editor "'C:/ Program Files(x86)/ Notepad ++ / notepad ++。exe' -multiInst -notabbar -nosession -noPlugin"
Dariusz

4
私はこのパーティーに遅れていることに気づきましたが、好奇心から、「-notabbar」を指定する理由を誰かが知っていますか(あるいは、これらすべての年の後でさえ覚えていますか)。私は他のパラメーターの背後にある理由を理解しています(まあ、なぜ "-noPlugin"なのかはわかりません)が、これはそうではありません。
Wilson F

11
@WilsonFその理由は、gitが入力の待機を停止して続行するには、notepad ++を終了する必要があるためです。Notepad ++のこのインスタンスでは他のタブを開きたくないので、gitセッションがフリーズしているように見えます。これらの設定は正確に正しく行われます。Notepad++を既に開いている場合は、新しいインスタンスを取得します。これにより、他のファイルを開くことができなくなり、gitが編集を完了したことを確認するために、完了時に閉じる必要があります。 。コミットメッセージでも同じように機能します。
ErikE、2015年

50

とにかく、私はこれを試してみたところ、次のことがうまく機能することがわかりました。

git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"

CMDは一重引用符が好きではないと思うので、「スペース埋め込み文字列引数を指定するには」二重引用符を使用する必要があります。

Cygwinの一方(私は信じているのGitのBashのための基盤となるプラットフォームです)両方好き'"。文字列が引用符で囲まれている限り、つまりこの例では単一引用符を使用している限り、の/代わりにを使用して、CMDのようなパスを指定できます\

-mオーバーライド/複数のエディタの使用を示し、ための必要はありません%*最後にタックが。


一重引用符/二重引用符の説明をありがとうございます。
Patrick McDonald

3
git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -m"私にとっては魅力のように機能します。
Vlad Holubiev、2015年

私は `git config --global code.editor" 'C:\\ Program Files \\ Sublime Text 3 \\ sublime_text.exe' -n -w -m "`を使用しましたが、「git commit」を実行すると開くメモ帳エディタ。なぜこれが当てはまるのかについての考えはありますか?前もって感謝します。
Ryan Chase

@RyanChaseローカル構成エントリを./git/configから削除します。例editor = notepad
Ricky Boyce

1
Git BashはCygwinではなくMingW64で実行されます。Cygwinには独自のGitバイナリがあります。
ハンス

27

編集: Vim 7.3に更新した後、これを行う最もクリーンで簡単な方法は次のとおりであるという結論に達しました。

  1. Vimのメインフォルダーをパスに追加します(マイコンピューターを右クリック→ プロパティ詳細設定環境変数

  2. これを実行してください:

    git config --global core.editor "gvim --nofork '%*'"
    

この方法でこれを行うと、Cygwinでも動作するはずです。

元の答え:

Vimに関連するいくつかの回答があっても、これをWindowsでgVimと連携させるのに問題がありました(バッチファイル、%EDITOR%、またはCygwinを使用していません)。

私が最終的に到達したのは素晴らしくてきれいであり、ここのいくつかの解決策から導き出されます:

git config --global core.editor \
"'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'"

少し時間がかかりましたが、これらはWindowsスタイルのバックスラッシュではありません。これらは通常のスラッシュです。


1
vimがにインストールされている場合はProgram Files(x86)、パスを明らかに変更する必要があります。
Swapnil 2014年

15

Notepad ++は問題なく動作しますが、私はNotepad、-m、または組み込みの「編集」を使用することを選択しました。

Notepad ++を使用して発生している問題は、Gitがエディター実行可能ファイルを起動する方法に関連しています。これに対する私の解決策は、環境変数EDITORを実際のエディター実行可能ファイルではなくバッチファイルに設定することです。

start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*

/WAITアプリケーションが終了するまでコマンドラインセッションを停止するように指示します。これにより、Gitが喜んであなたを待っている間、あなたは心ゆくまで編集することができます。%*はすべての引数をNotepad ++にバッチファイルに渡します。

C:\src> echo %EDITOR%
C:\tools\runeditor.bat

これをPowerShellで動作させるのに苦労しました。この方法(stackoverflow.com/questions/10564/…)は問題なく動作しました。
ピータースティーブンス

11

ワードパッド

私はVimを使用して満足していますが、Gitを会社に紹介しようとしているので、私たち全員が持っているものを欲しがっていました。窓)。

git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'

これはmsysgitでGit Bashを使用しています。私はWindowsのコマンドプロンプトから試したことはありません(違いがある場合)。


私はこれのシンプルさが好きでしたが、そのままではうまくいきませんでした。これが私が試したものです。次のエラーメッセージが表示されます。エラー:エディター 'C:\ Program Files \ Windows NT \ Accessories \ wordpad.exe'に問題がありました。
Shaun Luttin 2013

3
引用符が正しくありません。二重引用符は一重引用符の外側に置く必要があります。つまり、「 'C:\ Program Files \ Windows NT \ Accessories \ wordpad.exe'」を使用すれば機能します。
Shaun Luttin 2013

バックスラッシュ(\)の代わりにスラッシュ(/)を使用することもできます。
クリスジョーンズ

1
また、これには単に「git config」ではなく「git config --global」を使用するのがおそらく最善です。ほとんどの場合、現在使用しているものだけでなく、ワークステーション上のすべてのgitリポジトリに設定を適用する必要があります。
クリスジョーンズ14

@ChrisJones、「プログラムファイル」の間にはスペースがあるため、この場合は意味がありません。
Pacerier、2015年

9

私はWindowsでもCygwinを使用していますが、(端末ベースのVimではなく)gVimを使用しています。

この作業を行うために、私は次のことを行いました。

  1. git_editor.bat以下を含む1行のバッチファイル(という名前)を作成しました。 "C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
  2. git_editor.bat私の中に置かれましたPATH
  3. セットする GIT_EDITOR=git_editor.bat

これによりgit commit、などがgVim実行可能ファイルを正しく呼び出します。

注1:--noforkgVim のオプションにより、コミットメッセージが書き込まれるまでブロックされます。

注2:パスにスペースがある場合、gVimへのパスを引用符で囲む必要があります。

注3:Gitがスペースを含むファイルパスを渡す場合に備えて、「%*」を囲む引用符が必要です。


msysgit(cygwinのgitではない)を使用している人のために、これを少し簡単にすることができました。 stackoverflow.com/questions/10564/...
ニックKnowlson

cygwinでも動作する可能性があると考えたとき、私は完全には
わかり

8

Stack Overflowコミュニティのおかげで...そして少しの調査で、お気に入りのエディターEditPad ProをWindows XP SP3上のmsysgit 1.7.5.GITとTortoiseGit v1.7.3.0でコアエディターとして動作させることができました 。 ..

上記のアドバイスに従って、コードエディター用のBashスクリプトへのパスを追加しました...

git config --global core.editor c:/msysgit/cmd/epp.sh

しかし、上記の解決策を何度か試した後、私はようやくこれを機能させることができました。EditPad Proのドキュメントによれば、 '/ newinstance'フラグを追加すると、シェルはエディターの入力を待つことができます...

私の場合、「/ newinstance」フラグがキーでした...

#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"

ええ、newinstanceパラメータのダブルスラッシュはEditpadのドキュメントにあるはずです。ここに記載していただきありがとうございます!
gwideman 2014年

EditPad Proでは、/newinstanceスラッシュを1つだけにするようなコマンドラインスイッチが必要です。これは、Windowsアプリケーションではかなり正常です。UNIXシェルからEditPadを呼び出す場合は、シェルがスラッシュをエスケープするために提供するメカニズムを使用する必要があります。これにより、スイッチが絶対パスとして認識されず、単一のリテラルスラッシュがEditPadのコマンドラインに渡されます。
Jan Goyvaerts、2014

2
EditPad Pro 7があり、EditPadのプロセスを待機するプロセスからEditPad Proを呼び出す場合は/wait、EditPadのコマンドラインでスイッチを渡す必要があります。を使用/waitして、または使用せず/newinstanceに、新しいEditPadウィンドウを開くか、既存のウィンドウを再利用するかを制御できます。スクリプトによって起動されたプロセスは、ウィンドウが作成されたか再利用されたかに関係なく、ファイルが閉じられるのを待ちます。EditPad Pro 6以前はサポートしていません/wait
Jan Goyvaerts、2014

@JanGoyvaerts〜/waitフラグチップサーありがとう... :)
エディB

上記の手順を使用してEditPad Liteを動作させることができませんでした。おそらく、Git Bashやその他のUNIXシェルではなく、Windows端末を使用して(Gitを介して)EditPadを呼び出そうとしたためと思われます。私にとって[core]うまくいったのは、.gitconfig のセクションを直接編集してその行を含めることeditor = "'C:/Program Files/Just Great Software/EditPad Lite 7/EditPadLite7.exe' //wait //newinstance"でした。
user697473

8

以下のためのAtomあなたが行うことができます

git config --global core.editor "atom --wait"

Visual Studio Codeと同様

git config --global core.editor "code --wait"

コミットするためのAtomまたはVisual Studioコードウィンドウを開きます。

または崇高なテキストの場合

git config --global core.editor "subl -n -w"

はるかにシンプルで効果的です。ありがとうございました。
rom5jp

6

c:\ Users \ YourUserフォルダーの.gitconfigファイルを編集して、次を追加します。

[core]
editor = 'C:\\Program files\\path\\to\\editor.exe'

6

これは、より大きな問題の1つの症状です。特にあなたが何かの設定を持っていることTERM=dumb。正しく機能しない他のことlessは、完全に機能する端末がないことを示すコマンドです。

これは、最も一般的には、Windowsのグローバル環境変数でTERMが何かに設定されていることが原因のようです。私にとって、Strawberry Perlをインストールしたときに問題が発生しました。これに関するいくつかの情報は、この問題のmsysgitバグといくつかの解決策に関するものです。

最初の解決策は、〜/ .bashrcに以下を追加して修正することです。

export TERM=msys

これは、Git Bashプロンプトから次のように実行できます。

echo "export TERM=msys" >> ~/.bashrc

もう1つの解決策は、Strawberry PerlがTERM=dumb環境設定に追加する理由を気にしないため、最終的に私が行ったことですが、msysgitバグレポートのこのコメントで指示されているように、を削除するTERM=dumbことです

Control Panel / System / Advanced / Environment Variables ...(またはWindowsのバージョンによっては同様)は、Windowsでスティッキー環境変数が設定される場所です。デフォルトでは、TERMは設定されていません。そこにTERMが設定されている場合は、あなた(またはStrawberry Perlなどのインストールしたプログラムの1つ)が設定しています。その設定を削除すれば大丈夫です。

同様に、Strawberry Perlを使用してCPANクライアントなどを気にする場合は、そのままにしておき、〜/ .bashrcファイルでTERM=dumb使用することができunset TERMます。これは、上記の明示的な用語の設定と同様の効果があります。

もちろん、他のすべてのソリューションは正しいgit config --global core.editor $MYFAVORITEEDITORので、Gitがエディターを起動する必要があるときに、Gitがお気に入りのエディターを使用することを確認できます。


そんなに!Strawberry perlが原因でこの問題が発生しました。これを指摘するthx
Dmitry Avtonomov 2013年


4

PortableGit 1.6は問題なく動作していましたが、PortableGit 1.7 Windowsリリースにアップグレードした後、問題が発生しました。Gitコマンドには、Notepad ++。exeを正常に開くものもあれば、開かないものもあります。特に、Git rebaseの動作は異なります。

問題は、Windowsのcmdプロセスを実行するコマンドと、Unixのcmdプロセスを使用するコマンドです。スタートアップ属性をNotepad ++エディターに与えたいので、スクリプトをカスタマイズする必要があります。私の解決策はこれです。

  1. 適切なテキストエディターを実行するスクリプトを作成します。スクリプトは奇妙に見えますが、WindowsとUnixの両方のバリエーションを処理します。

    c:/PortableGit/cmd/git-editor.bat

    #!/bin/sh
    # Open a new instance
    
    function doUnix() {
      "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar $*
      exit
    }
    
    doUnix $*
    
    :WINCALL
    "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar %*
    
  2. グローバルなcore.editor変数を設定します

    スクリプトはgit / cmdフォルダーに保存されたため、すでにgitconsoleパスにあります。フルパスが正しく機能しない可能性があるため、これは必須です。

    git config --global core.editor "git-editor.bat"
    

これで、git commit -aおよびgit rebase -i masterコマンドを実行できます。Git Windowsツールに問題がある場合は、試してみてください。


4

私は複数のプラットフォームでGitを使用しており、すべてのプラットフォームで同じGit設定を使用するのが好きです。(実際、私はすべての構成ファイルをGitのリリース管理下に置き、Gitリポジトリのクローンを各マシンに配置しています。)私が思いついた解決策は次のとおりです。

エディターgiteditorに設定しました

git config --global core.editor giteditor

次に、PATHにあるgiteditorと呼ばれるシンボリックリンクを作成します。(私は個人用のbinディレクトリを持っていますが、PATHのどこでも機能します。)このリンクは、選択した現在のエディターを指します。マシンやプラットフォームが異なれば、使用するエディターも異なるため、ユニバーサルgit構成(.gitconfig)を変更する必要はなく、giteditorが指すリンクのみを変更する必要があります。

シンボリックリンクは、私が知っているすべてのオペレーティングシステムで処理されますが、異なるコマンドを使用する場合があります。Linuxでは、ln -sを使用します。Windowsの場合、cmd組み込みmklinkを使用します。構文は異なります(調べる必要があります)が、実際にはすべて同じように機能します。


実際、私はWindows7でこれを試しましたが、msys gitからは動作しません。それは言うerror: cannot spawn giteditor: No such file or directory
DanielSank

4

VonCの 提案に基づいて、これは私のために働きました(私を夢中にさせていました):

git config --global core.editor "'C:/Program Files (x86)/Sublime Text 3/subl.exe' -wait"

-wait特にGerritを使用していて、コミットメッセージの下部に手動でコピーする必要があるIDを変更している場合は、省略すると問題が発生する可能性があります。


4

GitでWindowsでNotepad ++を起動するには、次の両方を実行する必要がありました。

  • 以下を.gitconfigに追加します。

    editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin
    
  • Git Bashシェルを起動して管理者として実行するようにショートカットを変更し、それを使用してGit Bashシェルを起動します。コンテキストメニューのエントリ「Git Bash here」が必要な権限でNotepad ++を起動していないと推測していました。

上記の両方を行った後、それはうまくいきました。


3

私はWindowsでCygwinを使用しているため、以下を使用します。

export EDITOR="emacs -nw"

-nwですno-windowsつまりは試してみて、使用しないようにEmacsを教えて、Xウィンドウを

EmacsのキーバインドはWindowsシェルからは機能しないため、Cygwinシェルからのみ使用します...(rxvtをお勧めします。)


3

これはGeanyをGitのエディターとして使用するための私のセットアップです。

git config --global core.editor C:/path/to/geany.bat

次の内容でgeany.bat

#!/bin/sh
"C:\Program Files\Geany\bin\Geany.exe" --new-instance "$*"

DOSコンソールとmsysgitの両方で動作します。


2
VonCはnotepad ++について答えました、私の答えはGeanyですか?
CharlesB

2

パスにスペースがあると、Gitはエディターを見つけられないようです。したがって、Patrickの回答で言及されているバッチファイルを空白以外のパスに配置する必要があります。


3
このフォーマットは、スペースを含むパスの罰金に動作します:gitの設定--global core.editor「\」C:\プログラムファイル\ TextPadの5 \ textpad.exe \「」あなたは、バッチファイルを作成しないようにすることが実用的かもしれので
カール

2

私はGitがワードパッドKomodo Edit、そして私が提供するほとんどすべての他のエディターと協力するのに苦労しました。ほとんどは編集用に開いていますが、Gitは明らかに保存/閉じるのを待ちません。

松葉杖として、私はちょうどすなわち

git commit -m "Fixed the LoadAll method"

物事を動かし続けるため。コミットメッセージはおそらく本来よりも少し短くなる傾向がありますが、WindowsバージョンのGitで行うべき作業がいくつかあります。

GitGUIもそれほど悪くありません。少し向きがかかりますが、その後はかなりうまくいきます。


2

私はEmacsを使用することを好みます。それを設定するのは少し難しいかもしれません。

  1. Emacsをダウンロードして、どこかに解凍します c:\emacsます。
  2. 走る c:\emacs\bin\addpm.exe。Windows Vista以降を使用している場合は、右クリックして「管理者として実行」する必要があります。これにより、実行可能ファイルがパスに配置されます。
  3. ファイルの(server-start)どこかに追加します.emacs。ファイルを置く場所についてのアドバイスは、Emacs Windows FAQを参照してください.emacs
  4. git config --global core.editor emacsclientw

Gitは既存のEmacsプロセス内でファイルを開くようになります。その既存のプロセスをから手動で実行する必要がありc:\emacs\bin\runemacs.exeます。


1

引用符とを使用してEDITOR変数を設定することで、環境のバージョンを機能させることができました/

EDITOR="c:/Program Files (x86)/Notepad++/notepad++.exe"

1

私は同じ問題を抱えていて、別の解決策を見つけました。私は得ていました

error: There was a problem with the editor 'ec'

私は持っていますVISUAL=ec、そしてec.batパスが1行含まれているバッチファイルが呼び出されました:

c:\emacs\emacs-23.1\bin\emacsclient.exe %*

これは私と一緒に、コマンドラインから編集ファイルできますec <filename>、そして持つVISUAL最もunixyのプログラムがあまりにもそれを拾うセット手段を。Gitはかかわらず、私の他のコマンドには異なるパスを検索するようだ-私が見たときgit commitプロセス・モニタ、私はそれがためにパス上のすべてのフォルダに見て見たecとのためec.exeではなく、ためにec.bat。別の環境変数(GIT_EDITOR=ec.bat)を追加しましたが、すべて問題ありませんでした。


1

私はGitHub for Windowsを使用していますが、これは素晴らしい視覚的なオプションです。しかし、私はコマンドラインも好むので、Gitシェルでリポジトリを開いたときにそれを機能させるには、次のように設定します。

git config --global core.editor vim

それは素晴らしい作品です。



1

私はここに投稿され美しくシンプルなソリューションを見つけまし -作者によって与えられた "subl"ファイルをコピーしなければならないパスに間違いがあるかもしれませんが。

私はWindows 7 x64を実行していて、 "subl"ファイルを /Git/cmd/フォルダーにさせる必要がありました。

しかし、それは魅力のように機能します。


1

AtomとWindows 10

  1. デスクトップのAtomアイコンを右クリックして、プロパティをクリックしました。
  2. 「開始」場所のパスをコピーしました
  3. Windows Explorerであちこちを見て、「atom.exe」を見つけました。
  4. 私はこれをGit Bashで入力しました:

    git config --global core.editor C:/Users/YOURNAMEUSER/AppData/Local/atom/app-1.7.4/atom.exe"
    

注:すべて\をに変更しました/。私はホームディレクトリに.bashrcを作成し、ホームディレクトリ/を設定するために使用しましたが、それが機能したので/、次の方法だと思いました。


コンテンツの品質を上げるのに役立つこのURLを確認してください
Willie Cheng

@willieありがとうございます。テキストをフォーマットし、いくつかのタグを追加しました。それが少し改善されることを願っています。
ジョナサンラモス2016年

0

Cygwinでのソリューションは次のとおりです。

#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
  1. パスがない場合、パスを渡さない

  2. パスが空の場合は、空のパスを渡します

  3. パスが空でない場合は、Windows形式に変換します。

次に、これらの変数を設定します。

export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
  1. EDITORを使用すると、スクリプトをGitで使用できます

  2. GIT_EDITORを使用すると、スクリプトでハブコマンドを操作できます

ソース


0

これはCygwinとTextPadを使用して私のために働いています 6(編集:スクリプトに明らかな変更を加える限り、TextPad 5でも機能します)、おそらくモデルは他のエディターにも使用できます。

ファイル~/.gitconfig

[core]
    editor = ~/script/textpad.sh

ファイル~/script/textpad.sh

#!/bin/bash

APP_PATH=`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`
FILE_PATH=`cygpath -w $1`

"$APP_PATH" -m "$FILE_PATH"

このワンライナーも同様に機能します:

ファイル~/script/textpad.sh(オプション2):

"`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`" -m "`cygpath -w $1`"

0

これは私のために働きました:

  1. エディターの実行可能ファイルを含むディレクトリをPATH変数に追加します。(例:"C:\ Program Files \ Sublime Text 3 \"
  2. コンピュータを再起動します。
  3. core.editorグローバルGit変数を、拡張子 「.exe」なしのエディター実行可能ファイルの名前に変更します(例:git config --global core.editor sublime_text)

それでおしまい!

注: Sublime Text 3は、この例で使用したエディターです。


このように構成すると、Sublime Text 3は複数のインスタンスを開きますか、それともgitが編集の終了を知らせるために閉じる必要があるという事実を処理しますか?
ジェームズワールド

1
新しいウィンドウが開くと思います。あなたは--waitスイッチ(追加することができますsublimetext.com/forum/viewtopic.php?f=3&t=3257
nikoskip
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.