Quando aggiorni i tuoi pacchetti attraverso l' M-x list-packages
interfaccia, dopo la corretta installazione del pacchetto, ti verrà chiesto se vuoi rimuovere il vecchio pacchetto. Non eliminarli in modo che rimangano al loro posto e successivamente sarà possibile rimuovere il pacchetto più recente tramite questa interfaccia.
Il mio attuale elenco di pacchetti mostra 4 versioni di magit installate nella mia struttura di directory ~ / .emacs.d / elpa /.
magit 20160827.1549 obsolete A Git porcelain inside Emacs
magit 20160907.945 obsolete A Git porcelain inside Emacs
magit 20161001.1454 obsolete A Git porcelain inside Emacs
magit 20161123.617 installed A Git porcelain inside Emacs
È possibile ripulire le versioni precedenti in un secondo momento con la chiave ~
(pacchetto-menu-contrassegno-obsoleto-per-cancellazione) per contrassegnare tutti i pacchetti obsoleti. Per eliminare una determinata versione precedente, spostati sulla sua riga e premi d
per contrassegnarli per l'eliminazione. Dopo aver contrassegnato i pacchetti che useresti x
per eseguire le azioni come al solito.
In Emacs 25, contrassegnare tutti i pacchetti per la U
funzionalità di aggiornamento imposta automaticamente tutti i vecchi pacchetti per l'eliminazione e non richiede conferma dopo l'installazione. Devi cercare le linee che iniziano con la "D" maiuscola, che puoi semplicemente deselezionare (meglio con la seguente macro)
Digitare la chiave o l'accordo a sinistra del trattino dalle seguenti righe.
<F3> - start macro recording
C-s - isearch-forward
C-q - quoted-insert
C-j - linefeed character
D - the mark at the start of the line
<Ret> - stops the isearch on the line with the "D"
u - unmark the package for deletion
<F4> - stops macro recording - the first package is now unmarked
<F4> - executes the macro for the next upgraded package
Se non ci sono ulteriori corrispondenze per la ricerca, la macro suonerà il campanello e si fermerà, quindi è possibile C-u 0 <F4>
deselezionare tutti i pacchetti contrassegnati per l'eliminazione. Successivamente è possibile x
eseguire l'installazione delle installazioni.
La funzione che ho dichiarato essere cambiata nel mio commento deve essere cambiata in un modo che non riesco ancora a comprendere, poiché è importante che l'ultimo blocco (cond) debba avere successo per non essere ripetuto all'infinito.
M-x package-install-file
. Esistono anche altri modi per gestire i pacchetti oltre a ELPA / package.el, come el-get e quelpa , sembrano essere in grado di usare senza ELPA, forse possono fare quello che vuoi.