Nasıl bir dosya ise Emacs Lisp kullanan varsa kontrol edebilir miyim?
Emacs açıldı olduklarında salt okunur olarak oluşturulan dosyaları işaretlemek istiyorum. Atladığım bulmacanın parçası Bir dosya olmadığını kontrol etmek için nasıl "" varsa. Ben şu an için bu var:
;;
;; get file extension
;;
(defun get-ext (file-name)
(car (cdr (split-string file-name "\\."))))
;;
;; get the base name of the file
;;
(defun base-name (file-name)
(car (split-string file-name "\\.")))
;;
;; if an 'lzz' file exists for this header, mark it as read only
;;
(defun mark-read-only ()
(if (string= (get-ext (cur-file)) "h")
(if ( ??file-exists??? (concat (base-name (cur-file)) ".lzz") )
(toggle-read-only))))
Benim için ne kullanabilirim "???dosya var???"?
Bu, daha ekleyeyim "mark-salt okunur" için uygun kanca-file-hook bul bence. bulunca
Arka PLAN
C/C geliştirme süreci kolaylaştırmak için bir kod jeneratör lzz kullanıyoruz. Kısaca, lzz tek bir giriş dosyası görünüyor çok gibi C/C ) alır ve uygun olarak başlık ve kaynak dosyaları oluşturur.
Hata ayıklayıcı, orijinal kaynak ve derleme bağımlılıkları azaltmak için oluşturulan kaynak, Ancak, işaret, varsayılan, lzz tarafından içerir #line yönergeleri normalde başlık dosyaları içinde bu direktifler devre dışı bırakın. Sonuç şablonlar veya satır içi işlevleri hata ayıklama, hata ayıklayıcısını, normal olarak oluşturulan başlık ve özgün kaynak dosyası değil puan.
Bu büyük bir anlaşma değil, ancak son zamanlarda ayıklarken görüntülenen dosya için hızlı bir değişiklik yapacağım ben buldum ve sonra yeniden inşa edeceğim. Tabii ki bu yaptığım değişiklik ben düzenlenmiş bir dosya oluşturulur çünkü kaybolur ve değişiklikleri "" kütüphane yeniden inşa sırasında. üflenir böylece normalde demektir
ÇÖZÜM
Yardım ve yorumlar için herkese teşekkürler. Kullanmak için doğru işlevi işaret için cobbal özel bir teşekkür.
İşte (güncellemeler diğer açıklamalar buraya göre çok olan) çıkan kodu:
(defun cur-file ()
"Return the filename (without directory) of the current buffer"
(file-name-nondirectory (buffer-file-name (current-buffer)))
)
(defun mark-generated-as-read-only ()
"Mark generated source files as read only.
Mark generated files (lzz or gz) read only to avoid accidental updates."
(if
(or (string= (file-name-extension (cur-file)) "h")
(string= (file-name-extension (cur-file)) "cpp"))
(cond
(
(file-exists-p (concat (file-name-sans-extension (cur-file)) ".lzz"))
(toggle-read-only))
(
(file-exists-p (concat (file-name-sans-extension (cur-file)) ".gz") )
(toggle-read-only))
)
)
)
CEVAP
file-exists-p
deneyin
"Dosya dosya varsa (olup olmadığını ya da okuyabilirsiniz.) eğer iade t"
Nasıl bir dosya belirli bir dize bash ...
Nasıl bir uzak bir dosya PHP kullanara...
Nasıl bir dize başka bir dize içeriyor...
Nasıl belirli bir tablo için MySQL mot...
Nasıl Android sistemi sürüm kontrol ed...