Come posso usare emacs con git allinterno del terminale?
Su Dicembre 31, 2020 da admin Ho usato git config --global core.editor emacs
per impostare il mio editor git come emacs ma quando lo faccio e commetto qualcosa il leditor apre una nuova finestra invece di aprire emacs allinterno del terminale. Voglio usare emacs come se gli fosse stato assegnato -nw ma scrivere questo -> git config --global core.editor emacs -nw
non è la soluzione.
Per ora ho bisogno di usare git di base.
Commenti
- Conosci magit? Rende operazioni di base su git un gioco da ragazzi dallinterno di Emacs. magit.vc
- Sì. Non posso ' usarlo per ora. Al termine del corso, ' salgo di livello fino a magit.
- Dovresti descrivere cosa succede quando aggiungi " -nw " invece di affermare semplicemente che " non è la soluzione ". Funziona per me, quando il comando è correttamente sottoposto a escape.
Risposta
Quando esegui git config --global core.editor emacs -nw
, la tua shell divide la riga di comando in parole prima di invocare git. Git quindi vede “emacs -nw” come due argomenti separati. Ne basta uno da inserire nel file di configurazione, quindi laltro viene ignorato. (In realtà, “è una bugia ma puoi controllare la pagina man per i dettagli.) Puoi inserire virgolette attorno a una serie di parole per dire alla tua shell di non romperle: git config --global core.editor "emacs -nw"
lo farà dai “emacs -nw” a git come un singolo argomento che farà quello che vuoi.
Risposta
Non specifichi cosa cè di sbagliato nellaprire una nuova finestra emacs della GUI. Se il problema è il lungo tempo di avvio, puoi considerare di utilizzare emacsclient come editor. In poche parole, esegui (server-start)
nel tuo file di inizializzazione di emacs e tieni aperta la tua normale GUI emacs, quindi dì a git di usare un editor chiamato emacsclient. Quello che succede è che il file modificato appare in un nuovo buffer nel tuo emacs in esecuzione. Dopo aver finito, premi C-x #
per terminare la sessione di emacsclient e poi git (o un altro processo di shell che ha avviato leditor) sa che leditor “emacsclient” ha finito con il file e continua con la sua cosa. (“emacsclient” è anche una parola, quindi risolve anche il tuo problema immediato)
Anche quando la modifica deve essere fatta nella finestra del terminale puoi eseguire emacsclient -nw
ed elimina i lunghi tempi di avvio. Ci sono più possibilità, man emacsclient
è una buona lettura.
Commenti
- (sarebbe ' sono stato meglio come commento sulla risposta precedente, ma non mi è permesso pubblicare commenti)
- ' stavo cercando ovunque per questo, totalmente felice che ' sia una risposta 🙂
- Il problema principale che ho è che non ' t riporta sempre il focus al terminale dopo essere usciti da emacs. Ci sono situazioni in cui il focus non viene mai restituito, come quando hai una finestra impostata come sempre in primo piano, quella finestra sembra catturare il focus dopo essere usciti da emacs.
Lascia un commento