Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

using Notepad++ for git inside cygwin

This is an extension of this question

How do I use Notepad++ (or other) with msysgit?

i have done all combinations that i can think of for my shell script. when i have my cygwin console (im using mintty if it matters) i can type

npp {file}

and the file opens correctly. but when i do a

git rebase -i HEAD~5

npp opens with a blank new document, not the interactive file to control the rebase. any idea why this would be happening?

git --version
git version 1.7.9

latest version of cygwin on a windows 7 machine and NPP 5.9.8

also, here is my wrapper script

#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
  -nosession -noPlugin "$*"
like image 853
scphantm Avatar asked Apr 18 '12 12:04

scphantm


People also ask

Is Notepad ++ good for Git?

Notepad++ is often preferred over Vim as the default Git editor for commit text.


2 Answers

I've created a simple script for running arbitrary Windows commands with UNIX-style path arguments:

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

Here's how I can use it in my git config (assuming cygrun is a symlink to cygrun.sh somewhere in PATH):

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

This way one script can fits many similar use cases, there's no need to create a separate wrapper every time. It can be convenient to use from command line as well.

like image 199
Gene Pavlovsky Avatar answered Sep 19 '22 12:09

Gene Pavlovsky


I was correct about my cygwin path issue. i changed my shell wrapper to this

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

and it worked perfectly.

like image 33
scphantm Avatar answered Sep 19 '22 12:09

scphantm