9
votes

Utilisation de Notepad ++ pour Git Inside Cygwin

Ceci est une extension de cette question

Comment utiliser NotePad ++ (ou autre) avec MSYSGIT? P>

J'ai fait toutes les combinaisons que je peux penser pour mon script shell. Lorsque j'ai ma console Cygwin (im en utilisant MintTy si cela compte), je peux taper p> xxx pré>

et le fichier s'ouvre correctement. Mais lorsque je fais un P>

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


4 commentaires

Cygwin, intéressant. Mon script devait être utilisé avec MSYSGIT, dans une session DOS ou MWIN BASH. Pour Cygwin, ne devrait pas utiliser les chemins de cygwin? / CygDrive / C / Program Files (X86) / ...


POSIX est allumé de sorte que les chemins de Windows à l'intérieur de Cygwin fonctionnent tout simplement bien, en plus de, je l'ai essayé à la fois et ni ni autre.


Avez-vous vérifié ce SuperUserSer.com/q/168971/11855


Je travaille sur une idée en ce moment, je pensais que, étant donné qu'il s'agit d'une version Cygwin de Git, peut-être que la question est que GIT lui transmet un chemin Cygwin et une NPP ne sait pas quoi faire avec elle. Je cherche des scripts shell qui appellent cygpath pour le corriger.


5 Réponses :


17
votes

J'étais correct sur mon problème de chemin Cygwin. J'ai changé mon wrapper de shell sur cet xxx

et cela fonctionnait parfaitement.


3 commentaires

Excellent (+1). J'ai édité de la réponse originale ( Stackoverflow.com/Questtions/1634161/... ) pour inclure votre conclusion (et renvoyer votre réponse).


J'utilise Cygwin et j'ai eu des problèmes avec les \ donc j'ai changé cela en: #! / Bin / sh 'c: / Apps / Notepad ++ / Notepad ++. EXE' -MultiInst -NOTAbbar -nosession -NOPLUGIN "$ (CYGPATH -W -W "$ *") "Et maintenant ça marche pour moi. Merci un tas pour cela.


Que voulez-vous dire par "wrapper shell" ici? J'ai ce problème avec le texte sublime et je ne peux pas le comprendre. Lorsque je vais faire un git commit, il ouvre un fichier vide qui n'existe pas. Il cherche un chemin comme celui-ci: "C: \ C \ utilisateurs \ Jordan \ Desktop \ Test \ .git \ commit_editmsg"



5
votes

Voici la solution complète sans script wrapper strong>.

Ces lignes supposent que vous utilisez la version 64 bits de Windows. p>

exécutez la commande suivante de la commande Invite (Cygwin): P>

[core]
    excludesfile = /home/Aternus/.gitignore_global
    autocrlf = input
    safecrlf = true
    editor = '/cygdrive/c/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin


2 commentaires

Cela pourrait fonctionner juste avec la version de Windows de Git, pas Cygwin's, car Cygwin's Git exécuterait NotePad ++ avec le chemin de la Cygwin vers le fichier: Notepad ++. EXE /HOME/USER/REPOSITOIITITOIRE/FILE.EXTENSILE . Je suis sûr que Windows Notepad ++ ne trouvera pas ce fichier. Même si vous vous êtes reproduit en dehors des répertoires de Cygwin, cela ressemblerait à ceci: Notepad ++. EXE /CYGDRIVE/D/REPOSITOIRE/File.extension .


Lorsque j'utilise cela, je reçois une fenêtre de bloc-notes vide ouverte lors de la boîte de rebas interactive par exemple ...



4
votes

J'ai créé un script simple pour exécuter des commandes de Windows arbitraires avec des arguments de chemin de style UNIX:

cygrun.sh strong> p>

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


1 commentaires

Une version améliorée de mon script, qui peut également être utilisée pour exécuter des outils Cygwin à l'aide de chemins Windows: GIST. github.com/gene-pavlovsky/e81c8e18327540f70df4e5296FF3D D15 Utilisez l'option -w pour exécuter des outils Windows avec des chemins UNIX et aucune option (ou -u ) à Exécutez des outils Cygwin avec des chemins Windows.



0
votes
export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'

0 commentaires

0
votes

Il y a un Solution existante sans script d'emballage qui semble prometteur , mais avec Cygwin Git et CMD.EXE, Ouvrez un fichier vide à chaque fois.

Pour résoudre ce problème, vous auriez besoin d'avoir ceci dans votre fichier .gitconfig (avec lequel avec -global réside dans votre dossier à domicile Cygwin): P>

git config --global core.editor "'/cygdrive/c/Program Files (x86)/Notepad++/notepad++.exe'  -multiInst -notabbar -nosession -noPlugin $(cygpath --windows ${1})"


0 commentaires