Come posso usare Notepad ++ (o altro) con msysgit?
-
06-07-2019 - |
Domanda
Come posso usare Notepad ++ (o qualsiasi altro editor oltre a vim) con msysgit?
Ho provato tutto quanto segue senza risultati:
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
Soluzione
Aggiornamento 2010-2011:
zumalifeguard 's soluzione (aggiornato) è più semplice di quello originale, in quanto non necessita più di uno script wrapper shell.
Come spiego in " Come posso impostare un editor per lavorare con Git su Windows? " ;, Preferisco un wrapper, in quanto è più semplice provare a cambiare editor o cambiare il percorso di un editor, senza dover registrare nuovamente tale modifica con un git config
. < br>
Ma sono solo io.
Informazioni aggiuntive : la seguente soluzione funziona con Cygwin , mentre la soluzione di zuamlifeguard no.
Risposta originale.
Quanto segue:
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 "$*"
funziona. Tali comandi sono interpretati come script di shell, quindi l'idea di avvolgere qualsiasi set di comandi di Windows in uno script sh
.
(Come Franky commenti : " Ricordati di salvare il tuo file .sh
con terminazioni di linea in stile Unix o ricevere misteriosi messaggi di errore! ")
Maggiori dettagli sulla domanda SO Come posso impostare un editor per lavorare con Git su Windows?
Nota l'opzione ' -multiInst
', per garantire una nuova istanza di notepad ++ per ogni chiamata da Git.
Nota anche che, se stai usando Git su Cygwin (e vuoi usa Notepad ++ da Cygwin ), quindi scphantm spiega in " utilizzando Notepad ++ per Git all'interno di Cygwin " che devi essere consapevole che:
git
sta passando un percorsocygwin
enpp
non sa cosa farne
Quindi lo script in quel caso sarebbe:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Linee multiple per leggibilità:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Con " $ (cygpath -w " $ * ") "
è la parte importante qui.
Val commentato (e quindi eliminato) che non dovresti usare l'opzione -notabbar
:
Non è utile disabilitare la scheda durante rebase, ma danneggia molto l'usabilità generale del Blocco note poiché
-notab
diventa l'impostazione predefinita e deviImpostazioni > Preferenze > Generale > TabBar > Nascondi & deseleziona
ogni volta che avvii il blocco note dopo il rebase. Questo è l'inferno. Hai raccomandato l'inferno.
Quindi usa piuttosto:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
Cioè:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Se vuoi posizionare lo script ' npp.sh
' in un percorso con spazi (come in
' c: \ program files \ ...
',), hai tre opzioni:
-
Prova a citare il percorso (virgolette singole o doppie), come in:
git config --global core.editor 'C:/program files/git/npp.sh'
-
o prova la notazione con nome breve (non infallibile):
git config --global core.editor C:/progra~1/git/npp.sh
-
o (il mio preferito) posiziona '
npp.sh
' in una parte della directory della variabile di ambiente% PATH%
. Non dovresti quindi specificare alcun percorso per lo script.git config --global core.editor npp.sh
-
Steiny riporta nei commenti dovendo:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'
Altri suggerimenti
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Oppure, per Windows a 64 bit e un'installazione a 32 bit di Notepad ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
In alternativa, sulla riga di comando può essere emesso quanto segue su Windows a 32 o 64 bit. Tirerà la posizione di notepad ++. Exe dal registro e configurerà git per usarlo automaticamente:
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"
Se si desidera inserire quanto sopra da un file .BAT o .CMD, è necessario sostituire% A con %% A e% B con %% B
Questo funziona per me
git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe
git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\""
A partire da Git per Windows v2.15.0 (30 ottobre 2017) è ora possibile configura nano
o Blocco note ++ come editor predefinito di Git invece di vim
.
Durante l'installazione vedrai la seguente schermata:
Uso l'approccio con la variabile PATH. Path to Notepad ++ viene aggiunto alla variabile PATH del sistema e quindi core.editor viene impostato come segue:
git config --global core.editor notepad++
Inoltre, è possibile aggiungere alcuni parametri aggiuntivi per Notepad ++:
git config --global core.editor "notepad++.exe -multiInst"
(come ho dettagliato in " Git core.editor
per Windows ")
E qui puoi trovare alcune opzioni che puoi usare quando dichiari Notepad ++ Opzioni della riga di comando .
AGGIORNAMENTO 2015
Se scompattate / installate Notepad ++ in c: \ utils \ npp \
e rinominate notepad ++. exe in npp.exe per semplicità, tutto ciò che dovete fare è
git config --global core.editor c:/utils/npp/npp.exe
Nessun script wrapper o altro trucco. Non è necessario avere Notepad ++ in PERCORSO.
Sto usando Windows 10 e Notepad ++ e ho visualizzato questo messaggio di errore:
line 0: syntax error near unexpected token `(' git windows
Quindi eseguo l'installazione in questo modo:
git config --global core.editor 'C:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe'
e funziona
Segui queste istruzioni,
-
Per prima cosa assicurati di avere notepad ++ installato sul tuo sistema e che è il programma predefinito per aprire i file .txt.
-
Quindi installa gitpad sul tuo sistema. Nota che l'ultimo controllo è stato interrotto, quindi scaricalo da qui come spiegato .
Quindi, mentre ti impegni, dovresti vedere spuntare il tuo editor di testo preferito.
Ho usato la soluzione di starikovs. Ho iniziato con una finestra bash e ho dato i comandi
cd ~
touch .bashrc
Quindi ho trovato il file .bashrc in Windows Explorer, l'ho aperto con notepad ++ e ho aggiunto
PATH=$PATH:"C:\Program Files (x86)\Notepad++"
in modo che bash sappia dove trovare Notepad ++. (Avere Notepad ++ nel percorso PATH è una cosa utile da solo!) Poi ho incollato la sua linea
git config --global core.editor "notepad++.exe -multiInst"
in una finestra bash. Ho avviato una nuova finestra bash per un repository git per testare le cose con il comando
git rebase -i HEAD~10
e il file aperto in Notepad ++ come sperato.
Ecco una soluzione con Cygwin:
#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
-
Se nessun percorso, non passare alcun percorso
-
Se il percorso è vuoto, passa un percorso vuoto
-
Se il percorso non è vuoto, converti in formato Windows.
Quindi ho impostato queste variabili:
export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
-
EDITOR consente allo script di funzionare con Git
-
GIT_EDITOR consente allo script di funzionare con Comandi hub