9

これはこの質問の延長です

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

シェルスクリプトで考えられるすべての組み合わせを実行しました。Cygwinコンソールを持っているとき(問題があればminttyを使用しています)、入力できます

npp {file}

ファイルが正しく開きます。しかし、私がするとき

git rebase -i HEAD~5

npp は、リベースを制御するインタラクティブ ファイルではなく、空白の新しいドキュメントで開きます。なぜこれが起こっているのでしょうか?

git --バージョン
git バージョン 1.7.9

Windows 7 マシンおよび NPP 5.9.8 上の cygwin の最新バージョン

また、ここに私のラッパースクリプトがあります

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

6 に答える 6

17

cygwinパスの問題については正しかった。シェルラッパーをこれに変更しました

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

そしてそれは完璧に機能しました。

于 2012-04-18T13:08:59.883 に答える
5

これは、ラッパー スクリプトを使用しない完全なソリューションです。

これらの行は、64 ビット バージョンの Windows を使用していることを前提としています。

コマンド プロンプト (Cygwin) から次のコマンドを実行します。

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

これは、コマンドの後で.gitconfigがどのように見えるかの例です:

[core]
    excludesfile = /home/Aternus/.gitignore_global
    autocrlf = input
    safecrlf = true
    editor = '/cygdrive/c/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin
于 2012-10-04T11:46:10.727 に答える
4

UNIX スタイルのパス引数を使用して任意の Windows コマンドを実行するための簡単なスクリプトを作成しました。

cygrun.sh

#!/bin/sh
if test -z "$1"; then
    echo "Usage: $(basename "$0" .sh) program [argument]..."
    exit 1
fi

program=$1
shift
if test $# -ge 0; then
    IFS=$'\n'
    exec "$program" $(cygpath -w "$@")
else
    exec "$program"
fi

git config でそれを使用する方法は次のとおりです (PATH のどこかcygrunへのシンボリック リンクであると仮定します)。cygrun.sh

[core]
    editor = cygrun 'C:/Program Files/Notepad2/Notepad2.exe'
[difftool "diffmerge"]
    cmd = cygrun 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' \"$LOCAL\" \"$REMOTE\"

このように、1 つのスクリプトが多くの同様のユース ケースに適合するため、毎回別のラッパーを作成する必要はありません。コマンドラインからも使えて便利です。

于 2016-04-18T03:07:29.777 に答える
0

cygpath を使用してメモ帳への引数ファイル パスを処理する別の簡単な答えを提案します。

Windows で cgywin の下のホーム ディレクトリへのシンボリック リンクを作成します。このようにして、メモ帳はシンボリック リンクを介して入力ファイルを見つけることができます。

PC で、 「管理者として実行」でcmdを開き、次のように入力します。C:\

    C:\>mklink /D home cygwin64\home

これにより、次のように git を簡単に構成でき (以前の回答から取得)、次のディレクトリにメモ帳がインストールされていると仮定します。

    git config --global core.editor '/cygdrive/c/Program Files (x86)/Notepad++/notepad++.exe'
于 2021-12-28T07:07:34.910 に答える