2011-10-04 13 views
18

Per quanto ho capito, la seguente sequenza di comandidefinizioni di ripristino e ricaricare .emacs senza chiudere o riavviare Emacs e buffer riaprire

M-x load-file ENTER 
~/.emacs 
ENTER 

sarebbero reload mio file .emacs. Tuttavia, da quello che ho letto su altri forum, non è garantito che mi dia una configurazione totalmente rivista, cioè costringono Emacs ad analizzare il nuovo file di configurazione e a ricaricare le definizioni di variabili e funzioni modificate, ma non rimuovono le definizioni precedentemente caricate .

Con questo, le mie domande sono:

  1. E 'possibile chiare up definizioni di Emacs in memoria e ricaricare .emacs senza dover riavviare completamente Emacs?
  2. Se quanto sopra non è possibile, c'è un modo per riavviare Emacs (in modo che io analizzi il mio file .emacs da zero) chiedendogli di riaprire tutti i buffer che ho aperto?
+2

+1 per contrastare il (strano) downvote ... cosa c'è di sbagliato in questa domanda? –

+0

Perché stai cercando di ricaricare l'intero file? Parti del file che sai essere cambiato possono essere eseguite con eval-region –

+3

Diciamo che hai '(setq config-var t)' per alcune variabili il cui valore di default è 'nil'. Se elimini questa linea dal file, non puoi riprodurre il comportamento predefinito ricaricando solo quella parte del file (che ora è vuota), o anche l'intero file. Devi tenere traccia di ogni cambiamento che fai e annullarlo in qualche modo, che è pieno di pericoli e potrebbe anche non essere possibile. –

risposta

11

Annullamento tutto ciò che potrebbe essere stato fatto nella tua .emacs è impossibile.

È possibile salvare e ripristinare una sessione emacs con desktop. Esci con M-x desktop-save RET C-x C-c e quindi ripristina con emacs -f desktop-read.

Vedere (info "(emacs) Saving Emacs Sessions") per ulteriori informazioni. (È anche possibile customizedesktop-save-mode in modo che questo comportamento è l'impostazione predefinita.)

+1

Vedere anche http://porkmail.org/elisp/recover-buffers/che consente di rivisitare tutti i buffer aperti quando Emacs si chiude o si blocca. Divulgazione: l'ho scritto. – tripleee

4

Questa domanda è un duplicato, ma in quanto ha un risposta accettata io ripetere le mie osservazioni circa la biblioteca Desktop, che è che si memorizza una certa quantità di stato (modalità e variabili locali) con ogni buffer che salva, e quindi ripristina lo stesso stato quando ricaricherà quei file.

Nel tuo caso, ovviamente, questo è esattamente quello che tu non vuoi voglio accadere.

Vedere Reload .emacs for all active buffers per un modo semplice per ripristinare (ricaricare) tutti i buffer.

La combinazione dei due approcci consente di riavviare Emacs, con Desktop che ripristina i file, a quel punto è possibile ripristinare tutti i file.