2011-11-30 11 views
13

Non riesco a capire cosa sta succedendo qui. Ho fatto una ricerca e sostituzione in una directory intera, utilizzando: RETEmacs trova e sostituisce espressioni regolari in più file (find-name-dired + Q), non salva i miei buffer?

  1. Mx find-name-dired
  2. Scegli Radice del mio progetto
  3. immettere * .RB come i nomi dei file per abbinare
  4. Premere il tasto "T" per selezionare tutti i file trovati
  5. Premere il tasto "Q" (spostamento Q) per avviare la ricerca/sostituzione
  6. Enter "operazione", come la query, quindi immettere "fattura" come la sostituzione

Ora ho passato in rassegna tutti i buffer che apre per me, premendo selettivamente "y" o "n" a seconda della sostituzione. Al termine, mi ha lasciato nell'ultimo buffer che avevo modificato.

Quindi, premendo C-z per eseguire lo sfondo della finestra di emacs e controllare cosa è cambiato, mostra che nessuno dei file è stato salvato, cosa che mi aspettavo.

Così ho fatto M-x save-some-buffers RET, che mi dice che non ci sono file da salvare. Quindi inizio a ruotare i buffer con C-x b e verificare che, sì, i buffer do abbiano modifiche rispetto a ciò che è su disco.

Quindi ripeto il processo, questa volta con un processo emacs completamente nuovo (nessun buffer aperto quando avvio il processo). Alla fine ho un sacco di buffer aperti, con modifiche (che posso vedere), ancora una volta, emacs dice che non c'è nulla da salvare.

Così ho provato a usare C-x C-b per far apparire IBuffer. Contrassegnato tutti i file che volevo salvare, quindi premi "S" per salvarli, a quel punto mostra "Operazione finita, salvati 27 buffer". Fantastico ... tranne git mi sta ancora dicendo che Emacs non ha salvato nulla.

Cosa sto sbagliando? Voglio sostituire "transazione" con "fattura" su tutto il mio progetto, anche se ho bisogno di farlo in modo interattivo, poiché ci sono alcuni punti in cui tale sostituzione non dovrebbe essere eseguita.

Emacs 23.

+0

Anche se si passa a un buffer individuale di questi 27 buffer modificati, quindi si preme C-x C-s, si dice che non c'è nulla da salvare, ma in realtà lo è. Se poi colpisco la barra spaziatrice, cancelli di nuovo il carattere spazio e cit C-x C-s, * ora * salva (git mostra le modifiche). WTF? – d11wtq

+0

C'è un modo per dire a emacs di considerare con forza tutti i buffer sporchi? Se pensa che il buffer sia sporco, lo salverà allegramente, ma devo digitare sulla tastiera in ogni buffer per farlo accadere. – d11wtq

+2

C-u M- ~ contrassegna il buffer corrente come modificato. – Teddy

risposta

5

ho reproed il comportamento che descrivi. Certo puzza un insetto per me. Si prega di segnalarlo a [email protected]

I contributori Emacs sono molto reattivi.

P.S. Ama i dettagli che hai inserito nella tua domanda.

+0

Segnalato, e controllato emacs da git, ha costruito l'attuale HEAD e sembra che stia funzionando bene ora. Deve essere stato un problema in 23.3.1 stabile, immagino. – d11wtq

Problemi correlati