2009-12-06 9 views
8

Ho cercato nella documentazione e provato a personalizzare e una varietà di cose, ma non importa quello che faccio sembra Flymake mette sempre i suoi file temporanei in qualsiasi directory in cui si trova il file originale.Configurare flymake per utilizzare una directory specifica per i file temporanei?

Il principale La ragione è che questo è un grosso problema perché quando passo a passare i miei programmi usando gdb, a volte passo in un file STL o in un altro file in una directory non utente. Spesso questo causa il blocco del mio processo gdb per qualche motivo, il che significa che devo tornare all'inizio e disabilitare globalmente Flymake o sperare che non debba fare un altro file di ricerca in una directory che il mio processo emacs non ha accesso in scrittura.

C'è un buon modo per far sì che flymake generi sempre i suoi file temporanei, ad es. ~/.emacs.d/tmp?

risposta

5

versioni recenti di Emacs salvare solo "inplace". Ecco un rapido trucco per salvare "intemp": http://blog.arithm.com/2011/01/27/save-_flymake-files-in-a-temporary-directory/

+0

Ho dovuto modificare il defun un po 'per python/flymake., Ma in realtà ha funzionato. Ho aggiunto il mio defun modificato a quella pagina come commento. E ha bisogno di 'directory-file-temporali 'da definire, come nella risposta di Jonatan Linden. – quodlibetor

+0

@quodlibetor Hai trovato un modo generale che non richiede di specificare per diverse modalità separatamente, ma generalmente (LaTeX, Python, ecc.)? – PascalVKooten

+0

sorry @Dualinity Non ho avuto bisogno di questo abbastanza per cercare di renderlo generale. – quodlibetor

0

Non sicuro, ma per C#, flymake ridefinisce la funzione flymake-get-make-cmdline.

Restituisce una stringa, la riga di comando da eseguire per flymake. Suppongo che potresti modificare quella funzione per restituire quello che vuoi, inclusa una riga di comando che specifica le posizioni dei file temporanei in un modo intelligente, per qualunque compilatore tu stia correndo.

2

Questo funziona bene per me:

(setq temporary-file-directory "~/.emacs.d/tmp/") 
+0

Ho notato, ma non aggiusto mai, il fatto che quando ho aggiornato emacs questo ha smesso di funzionare. la risposta di nurikabe in combinazione con la tua ha fatto per me. – quodlibetor

Problemi correlati