Yanıtlar:
Emacs ya olmadıkça bir dosya metnini içermediğini sizi uyarır olamaz yapar (bu içerikleri ne görebilmesi için) açmak veya başka (belki Unix gibi bir şey kullanarak öğrenmek için başka bir program sorar file
komutuna).
İkinci yaklaşım ile sorun Emacs olmasıdır edebilirsiniz ikili dosya birçok türde ele, böylece daha sonra dış programı da hangi Emacs tanıyan ikili dosya, çeşitleri bilmek olduğunu gerekir dahil dinamik değişebilir hangi eklenti kütüphaneler tarafından eklenen desteği ve Kullanıcı Başına.
Orada herhangi bir iyi seçenek olduğunu sanmıyorum.
Özellikle kaçınmaya çalıştığınız şey nedir?
Düzenle:
Verilen örnek için gerekli olan test sadece dosya isimlerine dayandığından, aşağıdakiler uygulanabilir bir yaklaşım olacaktır.
(defvar my-find-file-check-source-extensions
'(".cpp" ".cc"))
(defadvice find-file-read-args (after my-find-file-read-args-check-source)
(let* ((filename (car ad-return-value))
(source-filename
(catch 'source-file-exists
(mapc (lambda (ext)
(let ((source-filename (concat filename ext)))
(when (file-exists-p source-filename)
(throw 'source-file-exists source-filename))))
my-find-file-check-source-extensions)
nil)))
(and source-filename
(not (y-or-n-p (format "Source file %s detected. Are you sure you \
want to open %s? " source-filename filename)))
(error "find-file aborted by user"))))
(ad-activate 'find-file-read-args)