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
È stato utile?

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 percorso cygwin e npp 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 devi Impostazioni > 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:

 inserisci qui la descrizione dell'immagine

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,

  1. Per prima cosa assicurati di avere notepad ++ installato sul tuo sistema e che è il programma predefinito per aprire i file .txt.

  2. 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"}
  1. Se nessun percorso, non passare alcun percorso

  2. Se il percorso è vuoto, passa un percorso vuoto

  3. 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'
  1. EDITOR consente allo script di funzionare con Git

  2. GIT_EDITOR consente allo script di funzionare con Comandi hub

Fonte

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top