msysgitでNotepad ++(またはその他)を使用するにはどうすればよいですか?


210

msysgitでNotepad ++(またはvim以外のその他のエディター)を使用するにはどうすればよいですか?

私は次のことをすべて試しましたが、役に立ちませんでした。

git config --global core.editor C:\Program Files\Notepad++\notepad++.exe

git config --global core.editor "C:\Program Files\Notepad++\notepad++.exe"

git config --global core.editor C:/Program Files/Notepad++/notepad++.exe

git config --global core.editor C:\\Program Files\\Notepad++\\notepad++.exe

1
エラーメッセージはありますか?EDITOR環境変数を設定してみましたか?
-csl

4
ここを見てみてください。stackoverflow.com/questions/10564/...
JasonTrue

リクエストに応じて、スペースを含むスクリプトのパスに関する情報を追加しました。
VonC、2009年

回答:


76

2010-2011の更新:

zumalifeguardソリューション(賛成)は、シェルラッパースクリプトを必要としないため、元のソリューションよりも単純です。

WindowsでGitを使用できるようにエディターを設定するにはどうすればよいですか?」で説明したように、ラッパーの方が好きgit configです。変更を登録することなく、エディターを切り替えたり、1つのエディターのパスを変更したりする方が簡単です。再び
しかし、それは私だけです。


追加情報:次のソリューションはCygwinで機能しますが、zuamlifeguardのソリューションは機能しません。


元の答え。

以下:

C:\prog\git>git config --global core.editor C:/prog/git/npp.sh

C:/prog/git/npp.sh:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"

動作します。これらのコマンドはシェルスクリプトとして解釈されるため、コマンドのウィンドウセットをshスクリプトでラップするという考えです。
Frankyの コメント:「.shUnixスタイルの行末でファイルを保存するか、神秘的なエラーメッセージを受け取ることを忘れないでください!」)

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

-multiInstGitからの呼び出しごとにnotepad ++の新しいインスタンスを確保するために、 ' 'オプションに注意してください。

Cygwinで Git を使用している(そしてCygwin からNotepad ++使用したい)場合、scphantmは「Cygwin内でGitにNotepad ++を使用する」で、次の点に注意する必要があることにも注意してください。

gitcygwinパスを渡してnppいて、それをどうするかわからない

したがって、その場合のスクリプトは次のようになります。

#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"

読みやすくするための複数行:

#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
  -nosession -noPlugin "$(cygpath -w "$*")"

"$(cygpath -w "$*")"ここで重要な部分です。

Val -notabbarオプションを使用すべきではないとコメント(そして削除)しました:

リベース中にタブを無効にするのは得策ではありません-notabが、デフォルトの設定となり、Settings>Preferences>General>TabBar> Hide>uncheckリベース後にメモ帳を起動するたびにノートパッドを起動する必要があるため、一般的なメモ帳のユーザビリティに大きな害を及ぼします。これは地獄です。地獄をお勧めします。

したがって、次のように使用します。

#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"

あれは:

#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
  -noPlugin "$(cygpath -w "$*")"

スクリプト ' npp.sh'をスペースのあるパス( ' c:\program files\...'、など)に配置する場合は、3つのオプションがあります。

  • 次のように、パスを引用符で囲みます(一重引用符または二重引用符)。

    git config --global core.editor 'C:/program files/git/npp.sh'
  • または略称表記を試してください(フールプルーフではありません):

    git config --global core.editor C:/progra~1/git/npp.sh
  • または(私のお気に入り)環境変数のnpp.shディレクトリ部分に' 'を配置し%PATH%ます。その場合、スクリプトのパスを指定する必要はありません。

    git config --global core.editor npp.sh
  • シュタイニーは、コメントで報告なければなりません:

    git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'

ドライブのルートにnpp.sh(つまり、C:/npp.sh)を配置して、これを機能させました。スペースが含まれているフォルダー(つまり-D:/ Program Files(x86)/Git/npp.sh)をターゲットにしようとすると失敗しますが、スペースをエスケープしてこれを機能させるには、どの方法が適切ですか?
PHLAK、2009年

引用符で囲みます。彼の例で彼がすべてを引用しているのを見てください?
フレッド

2
zumalifeguardの答えがうまくいきました。シェルスクリプトラッパーは必要ありません。
wbinford、2011年

1
@wbinford:zumalifeguardの回答(私が賛成)へのリンクと、直接のコマンドではなくラッパーを登録したい理由を追加しました。
VonC、2011年

1
上記の組み合わせを複数試しましたが、gitでは動作しません。私のパスにnppスクリプトがあり、cygwinコンソールから「npp {file}」と入力すると、nppはファイルを正常に開きますが、「git rebase -i」を実行すると、nppがマージファイル。なぜこれが起こるのでしょうか?
scphantm 2012

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

または、64ビットWindowsおよび32ビットインストールのNotepad ++の場合:

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

または、32ビットまたは64ビットのWindowsのコマンドラインで次のコマンドを発行できます。レジストリからnotepad ++。exeの場所を取得し、それを自動的に使用するようにgitを構成します。

FOR /F "usebackq tokens=2*" %A IN (`REG QUERY "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\notepad++.exe" /ve`) DO git config --global core.editor "'%B' -multiInst -notabbar -nosession -noPlugin"

上記を.BATまたは.CMDファイルから配置する場合は、%Aを%% Aに、%Bを%% Bに置き換える必要があります。


9
git拡張でも動作します。64ビットWindowsの場合、エントリは"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin
Tim Abell

15
ばかげたことは、そのセッションだけでなく、-notabbarがタブバーを永久に無効にすることです。通常、notepad ++を起動するときは、設定ダイアログに移動して、タブバーを再度有効にする必要があります。
Oskar Berggren 2013年

4
私は使用しなければなりgit config --global core.editor "c\:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe -multiInst -nosession -noPlugin" ませんでした... ...理由はわかりません。
David Faivre、2013

1
私は、Windows 7 64ビット、msysgit v1.9.2メモ帳++ v6.6.9を持っており、これが働いたPERFECTLY。ありがとう。
Radu Murzea 2015年

2
@CoDEmanXがなければ-multiInst、すでに実行中のNotepad ++にファイルを開いてすぐに終了するよう通知するだけの可能性があります。これは、エディターの呼び出しで編集が完了したときにのみ返されると期待する場合(つまり、viを呼び出す場合のように同期操作)、大きな問題になる可能性があります。git rebase -iたとえば、インタラクティブなリベース()を試してください。これでも期待どおりに機能する場合は、問題ありません。
blubberdiblub

7

これは私のために働く

git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe

私は同じことをしました..メッセージでコミットするためにメモ帳++を開く方法は?? コンマは何ですか?例を挙げてください
shridutt kothari 2015

4
-multiInst他の回答と同様に、ここでオプションを追加することが重要です。
blubberdiblub

1
これは2つの理由で良くありません。まず、C:ボリュームが8.3ファイル名オプションをオフにしたNTFSの場合、何もありませんC:\Progra~1。第二に、複数のC:\Progra*ディレクトリが存在する可能性がある ため、~1サフィックスは必ずしも有効なものではありません。
kkm 2016年

5
git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\""

それは私にとってはトリックでした!その後、.gitconfigは次のようになります。[core] editor = \ "c:\\ Program Files(x86)\\ Notepad ++ \\ notepad ++。exe \" -multiInst -nosession -noPlugin
AtliB

これを含む最高投票数の回答を参照してください(十分に読んでいませんでした)
AtliB


3

私はPATH変数を使用したアプローチを使用しています。Notepad ++へのパスがシステムのPATH変数に追加され、次にcore.editorが次のように設定されます。

git config --global core.editor notepad++

また、Notepad ++のパラメーターをいくつか追加することもできます。

git config --global core.editor "notepad++.exe -multiInst"

(「Git core.editorfor Windows」で詳しく説明したように)

そして、ここでNotepad ++ コマンドラインオプションを述べるときに使用できるいくつかのオプションを見つけることができます。


1

2015年の更新

Notepad ++を解凍/インストールしc:\utils\npp\、notepad ++。exeをnpp.exeに名前変更して簡単にする場合、必要な作業は次のとおりです。

git config --global core.editor c:/utils/npp/npp.exe

ラッパースクリプトやその他の仕掛けはありません。PATHにNotepad ++を含める必要はありません。


2020年の更新:新しいメモ帳インスタンスを開くオプションを見逃しているようです。私はcmd.exeから使用しましgit config --global core.editor "c:\\soft\\notepad++\\notepad++.exe -multiInst -notabbar -nosession -noPlugin"たが、両方cmd terminalから機能していますgit bash
oleksa

1

私はWindows 10とnotepad ++を使用していますが、次のエラーメッセージが表示されました。

line 0: syntax error near unexpected token `(' git windows

だから私はこのように設定します:

git config --global core.editor 'C:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe'

そしてそれは動作します


0

これらの指示に従ってください、

  1. 最初に、システムにnotepad ++がインストールされていることと、それが.txtファイルを開くデフォルトのプログラムであることを確認してください。

  2. 次に、gitpadをシステムにインストールします。最後にダウンロードリンクが壊れていることを確認したことに注意してください。説明に従って、ここからダウンロードしてください

次に、コミット中に、お気に入りのテキストエディタがポップアップ表示されます。


0

私はスタリコフの解を使いました。私はbashウィンドウから始めて、コマンドを与えました

cd ~
touch .bashrc

次に、Windowsエクスプローラで.bashrcファイルを見つけ、notepad ++で開いて追加しました

PATH=$PATH:"C:\Program Files (x86)\Notepad++"

そのため、bashはNotepad ++の場所を知っています。(bash PATHにNotepad ++があると、それだけでも便利です!)次に、彼の行を貼り付けました

git config --global core.editor "notepad++.exe -multiInst"

bashウィンドウに。コマンドでテストするために、gitリポジトリの新しいbashウィンドウを開始しました

git rebase -i HEAD~10

希望どおりにファイルがNotepad ++で開かれました。


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を使用すると、スクリプトでハブコマンドを操作できます

ソース

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.