2009-12-06 14 views
8

Dokümanları inceledim ve özelleştirmeye çalıştım ve çeşitli şeyler denedim, ama ne yaparsam yapayım Flymake, her zaman kendi geçici dosyalarını orijinal dosyanın bulunduğu dizine yerleştirir.Temp dosyaları için belirli bir dizini kullanmak için flymake'yi yapılandırın.

Ana Bunun nedeni büyük bir sorun çünkü programlarımda gdb kullanarak adım attığım zaman, bazen STL dosyasına veya kullanıcı olmayan bir dizindeki başka bir dosyaya adım atıyorum. Sıklıkla bu, gdb işlemimin bazı nedenlerle yanıt vermemesine neden oluyor, bu da başlangıçta baştan sonuna kadar gitmek zorunda olduğum ve ya Flymake'ı global olarak devre dışı bırakabileceğimi ya da başka bir dosya bulmak zorunda olmadığımı umduğum anlamına geliyor. emacs işlemimin yazma erişimi yok.

Her zaman geçici dosyalarını oluşturmak için flymake almanın iyi bir yolu var mı? ~/.emacs.d/tmp?

cevap

5

Son versiyonları sadece "INPLACE" kaydedin. İşte "intemp" kaydetmek için hızlı bir kesmek: http://blog.arithm.com/2011/01/27/save-_flymake-files-in-a-temporary-directory/

+0

Python/flymake için defun'u biraz değiştirmek zorundaydım, ama aslında işe yaradı. Değiştirilmiş defun'u bu sayfaya yorum olarak ekledim. Ve Jonatan Linden'in cevabında olduğu gibi tanımlanması gereken 'geçici dosya dizini' gerekiyor. – quodlibetor

+0

@quodlibetor Çeşitli modlar için ayrı ayrı belirtmeyi gerektirmeyen genel bir yol buldunuz mu, ama genellikle (LaTeX, Python, vb)? – PascalVKooten

+0

Üzgün ​​@Dualinity Genel olarak bunu denemek için buna yeterince ihtiyacım yok. – quodlibetor

0

Emin değilim, fakat C# için, flymake flymake-get-make-cmdline işlevini yeniden tanımlar.

Bir dize döndürür, flymake için çalıştırılacak komut satırı. Çalıştığınız derleyici için temp dosyası konumlarını bazı akıllı yollarla belirten bir komut satırı da dahil olmak üzere, istediğiniz işlevi geri döndürmek için bu işlevi değiştirebileceğinizi varsayalım.

2

Bu benim için çalışıyor: Emacs

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

Fark ettim, ama asla düzeltmedim, emacs'ı yükselttiğimde bu çalışmayı durdurdu. nurikabe'nin cevabı seninkiyle senin için yaptı. – quodlibetor

İlgili konular