Impossibile eseguire l'editor


153

Spesso non devo modificare più messaggi di commit, ma è successo una o due volte e non ricordo di averlo visto. Spero che qualcun altro l'abbia fatto. Quando I git rebase -i HEAD~7, l'elenco previsto si apre in vi esattamente come previsto. Cambio i pickvalori editdove appropriato e poi :wq.

Impossibile eseguire l'editor

L' core.editorimpostazione nel mio globale .gitconfigè vi(l'ho anche cambiata vimin una mossa disperatamente disperata). Ho provato a usare mate, ma questo non ha nemmeno aperto correttamente l'elenco iniziale, quindi l'ho cambiato di nuovo.

Sto usando v1.7.3 e sarei felice di ricevere qualsiasi suggerimento.


1
La fonte include git_editor "$TODO" || die_abort "Could not execute editor". Dal momento che dici che l'editor effettivamente arriva, ciò significa che sta restituendo un codice di uscita diverso da zero. Puoi replicare quel comportamento usandolo normalmente dalla riga di comando?
Cascabel,

La cosa strana per me è che vi si avvia per visualizzare l'elenco dei commit, ma quando salvo e chiudo tutto muore. Vedi la mia risposta per la modifica che ho apportato per iniziare magicamente a funzionare.
Rob Wilkerson,

Quale sistema operativo stavi eseguendo? Con OSX Lion ho avuto lo stesso problema e la tua risposta l'ha risolto. +1
Adam Lewis,

@AdamLewis - Non posso esserne sicuro ora, ma probabilmente 10.6 o .7 data la data. OSX, di sicuro.
Rob Wilkerson,

5
Penso di aver creato questo problema quando ho usato homebrew per installare un nuovo vim. L'impostazione l'ha git config --global core.editor "/usr/local/bin/vim"risolto per me.
mmell

Risposte:


185

Ieri era solo uno di quei giorni. Per uno scherzo, ho deciso di impostare il percorso completo per vi (ad esempio /usr/bin/vi) piuttosto che solo l'eseguibile. Ora funziona tutto. Devo ammettere che non lo capisco dal momento che viè perfettamente eseguibile da solo (anche la mia $EDITORvariabile env è impostata su vi), ma funziona e il mio karma tecnico non è stato così grande ultimamente, quindi forse non dovrei mettere in discussione le divinità ...


6
Dove hai impostato il percorso completo su / usr / bin / vi?
Amala,

131
Ho messo nel mio file di configurazione globale: git config --global core.editor "/usr/bin/vim".
Rob Wilkerson,

Ho avuto lo stesso problema. Per motivi che non riesco a capire, la mia impostazione core.editor era impostata su / user / bin / vim anziché / usr / bin / vim
jonnybot

Aveva lo stesso problema ma con Sublime Text - il percorso completo ha finalmente risolto le cose. Il che era strano perché sono sicuro che tutto ha funzionato bene prima comunque ...: - \
Hal

git config --global color.editor "/usr/local/bin/vim"ha funzionato per me :), grazie
przbadu

159

Il seguente comando

git config --global core.editor /usr/bin/vim

lo risolve.

[modificare]

Ora vedo che qualcuno lo ha già pubblicato nei commenti. Spero che sia ancora utile per alcune persone cieche come me.


6
Ad esempio, per Windows (le virgolette singole mancanti erano il mio problema): git config --global core.editor "'C: \ Programmi (x86) \ Vim \ vim74 \ vim.exe'"
chrjs

1
Sì, questo ^. Per chiarire questo, utilizzare le virgolette doppie attorno alle virgolette singole attorno al percorso dell'eseguibile.
Jacob

Funziona come un fascino!
R11G

7

A differenza delle altre risposte qui finora, per me usare il percorso assoluto di vi e impostare il git core.editor configurazione di , non era sufficiente per risolvere il problema. (Quelli erano già in atto.)

Nella mia situazione, il problema è stato risolto aggiungendo il -fflag al comando vi:

git config --global core.editor '/usr/bin/vi -f'

Una volta che questa -fopzione è attiva, posso usaregit rebase -i e quando salvo e chiudo la lista di commit, la rebase procede come dovrebbe invece di dare l'errore "Impossibile eseguire l'editor".

La pagina man di vim dice riguardo all'opzione -f,

Per la versione GUI, Vim non si biforcherà e si staccherà dalla shell in cui è stato avviato.

Beh, non sto usando una versione della GUI, di cui sono a conoscenza. Sto correndo gitdalla riga di comando bash in una finestra terminale su masOS Sierra 10.12.6. Ma dal momento che git rebase -iattende il termine della sessione di modifica, suppongo sia per questo che -fqui è necessaria l' opzione. Forse vim (senza -f) prova a biforcarsi / staccarsi dalla shell per qualche motivo che non sono stato in grado di capire.


6

Ho avuto questo problema ed è stato causato da alcune parti del plugin vcscommand per vim. L'avvio di vim con uno di questi comandi ha comportato il codice di uscita 1 ("errore"):

  • vi
  • vim

Ma questi mi hanno dato il codice di uscita 0 ("successo"):

  • /usr/bin/vi
  • /usr/bin/vim
  • vi -u NONE
  • vim -u NONE

Sono stato in grado di risalire al plug-in specifico disabilitando ~/.vimrce archiviando i file ~/.vimrinominandoli e correndo vi -c q ; echo $?per eseguire rapidamente VIM e stampare il codice di uscita.


1
Ho avuto lo stesso problema e impostare il percorso completo per vim ha funzionato: git config --global core.editor / usr / bin / vim
James

Un altro possibile colpevole sembra essere il plugin patogeno su Mac OS X .
sschuberth,

3

Per me, è stato un problema con il mio .vimrc. Rinominando temporaneamente quel file è stato risolto. Seguito dal debug del mio .vimrc. Questo è molto simile all'esperienza di Ignu.


Sì, ho avuto! Silent colorscheme macvim nel mio .vimrc, per impostare il colorscheme su quello se esistesse, e per non infastidirmi se non lo fosse (quindi la riga di comando vim avrebbe funzionato). D'altra parte, ciò ha cambiato lo stato di uscita a 1 quando non è riuscito, anche con silenzio !.
Max

3

Se volessi, per qualsiasi motivo, utilizzare sublime, potresti fare qualcosa del genere nel tuo file di configurazione globale:

 git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"

1

Mi ci è voluto solo un po 'per rintracciare il mio problema su uno dei miei plugin.

(in particolare, era https://github.com/ervandew/supertab )

Immagino che sia l'aspetto negativo di aggiornare automaticamente tutti i miei plugin.

Quindi il miglior consiglio, disabilita metà del tuo vimrc e plugin. Se ciò non aiuta, il problema è con l'altra metà.


Ho lo stesso problema con Supertab.
Harithski,

Come lo hai rintracciato in supertab? Sarebbe un'informazione davvero utile.
Justin Force,

1

Un'altra opzione è utilizzare l' nanoeditor.

$ whereis nano
$ git config --global core.editor path/to/nano

Risolve.


1

Stavo cercando di eliminare i commit come mostrato qui https://www.youtube.com/watch?v=V5KrD7CmO4o . Il mio editor git (notepad ++) si è aperto nel passaggio di rebasing. Ma, nel passaggio del messaggio di modifica commit, ho riscontrato il problema "Impossibile eseguire l'editor". Probabilmente è successo perché le impostazioni dell'editor git erano errate e anche perché ho installato notepad ++ in una posizione non standard sul mio sistema Windows. Cioè, "git config core.editor" mi ha datonotepad++ -multilnst- nosession .

Per risolvere il problema, fornire un percorso completo come questo:

git config --global core.editor "'C:\CustomFolder\NPP\notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Consultare: https://www.youtube.com/watch?v=YLxdkcT6H4g


0

Sei sicuro che / usr / bin / vim fosse su 1.7.3? Ho avuto lo stesso problema perché avevo installato il plug-in di backup che è supportato solo in 1.7.3 e per qualche motivo / usr / bin / vim è stato improvvisamente declassato a 1.7.2, forse a causa di un importante aggiornamento di XCode. ..


0

Ho avuto questo problema anche quando avevo già aperto vim per un rebase in un altro terminale. Avevo iniziato il rebase, mi ero interrotto, e quando sono tornato l'ho provato di nuovo da capo nell'altro terminale, senza rendermi conto che ero nel mezzo dello stesso rebase altrove. Il solo completamento della sessione di rebase vim nell'altro terminale ha funzionato bene.


0

Stranamente, riprovarci ha funzionato per me.

Le mie variabili core.editor e $ EDITOR non sono impostate.


0

Per me, usando windows: chiudi il terminale corrente e aprine un altro (win + R, digita 'cmd', quindi 'enter'), quindi all'improvviso funziona.


0

Soluzione VS Code:

git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.