1. Adım: Çalışıyor emacs -Q
Yapmanız gereken ilk şey, özelleştirmeleriniz olmadan emacs çalıştırmaktır. Sorunu vanilya Emacs'ta çoğaltabiliyorsanız, bu aslında Emacs'ın kendisinde bir hata olabilir. Bu nadir, ancak ilk adım olarak ekarte ediyoruz.
Emacs'ı komut satırından -Q
bayrakla başlatırsanız , yani, emacs -Q
yerel özelleştirmelerinizin hiçbiri yüklenmeden, çıplak veya 'vanilya' emac'leri alırsınız. Sorununuz hala devam ediyor mu? Öyleyse, "Hata Tarifi Verme" bölümüne atlayın.
Adım 1b: sorun bir paketteyse?
Eğer probleminiz belirli bir pakete özgüyse, belli ki o paketi yüklemeden onu çoğaltamazsınız. Ancak, yapılandırmanızın tümünü değil, yalnızca ilgili paketi yüklemek istiyorsunuz. Bunu yapmak için, emacs -Q
tekrar çalıştırın ve aşağıdaki gibi kısa bir komut dosyası hazırlayın:
(require 'package)
(setq package-load-list
'((package1 t)))
(package-initialize)
package1
Yüklemek istediğiniz paketin adı ile değiştirin . Birden fazla paket yüklemeniz gerekirse, komut dosyasını uygun şekilde değiştirin:
(require 'package)
(setq package-load-list
'((package1 t)
(package2 t)
(package3 t)))
(package-initialize)
Bu kodu yüklemek için, onu *scratch*
ara belleğe yapıştırabilir ve çağırabilirsiniz M-x eval-buffer
. (veya içinde başka bir kod bulunmadığı sürece herhangi bir tampon!).
Bu noktada, paketleri ve yalnızca test ettiğiniz paketleri yüklediniz. Sorunu şimdi yeniden oluşturabiliyorsanız, "Hata Tarifinin Verilmesi" bölümüne atlayın.
Adım 2: Bilgisayarınızda bir Hata Bulma .emacs
Sorunun yapılandırmanızdaki bir şeyden geldiğini onayladınız ("çağrı evin içinden geliyor!"). Yapılandırmanız binlerce satır uzunluğunda olabilir ve birçok farklı dosya yükleyebilir. Sorunu bulmak için, bir anda bir şeyi daraltmak için kodun yarısını yorumlayan bir ikili arama yaparsınız. 1
- Düzenli emacs'ı, aç
emacs
kalmadan, -Q
seçenek.
- Config dosyanızı açın (genellikle
~/.emacs
veya .emacs.d/init.el
denemezseniz C-h v user-init-file
)
- Dosyanın ilk yarısını seçin:
C-space
işaretini ayarlamak, bölgeyi uzatmak için yarıya kadar kaydırın
- Seçilen bölgeye yorum yapın:
M-;
ve dosyayı kaydedin
- İlk emakları çalışır halde bırakarak yeni bir test açın
emacs
( test emaklarınız ). test emacs , config ayarınızın indirilmiş halini okuyacak
- Test emacsındaki sorunu yeniden oluşturmaya çalışın
- Bunu çoğaltamazsanız, test emaklarını kapatın , orijinal belgenizde
undo
ise yorumu ile birlikte emac yapın C-/
ve kalan kodun yarısını yorumlayın. Yeni bir test emacs açın ve tekrar deneyin.
- Sorunu yeniden oluşturabilirseniz, kalan kodun yarısını yorumlayın ve sorunun devam edip etmediğini kontrol edin.
- Sorunu yeniden oluşturmak için yapılandırmanızın en küçük parçasını bulana kadar bu işlemi tekrarlayın.
Sorununuz belirli bir paketteyse, tabii ki bu paketi yükleyen kodu bırakmak zorunda kalacaksınız.
Config dosyanız başka dosyalar yüklüyorsa, aramanızı bu dosyalara da genişletebilirsiniz.
Bu noktada, sorunun yalnızca bir veya iki kod kodundan kaynaklandığını bulmuş olabilirsiniz. Bunu kendin bile çözebilirsin. Öyleyse, tebrikler, bir şey öğrendiniz! Aksi takdirde, üçüncü adıma geçin.
Adım 3: Hata Tarifi Verme
Bu noktada, buraya göndermek için ayrıntılı bir hata tarifi verebilmelisiniz. Şunlar içermelidir:
- Emacs versiyonunuz (bunu Emacs ile alabilirsiniz.
M-x emacs-version
- İşletim sisteminiz (Windows #, Mac, Linux dağıtımı)
- Varsa, mücadele ettiğiniz paketin sürümü
- Ne olacağını umduğunuzu ve gerçekte ne olduğunu da içeren, sorunu göstermek için gerekli olan özel adımlar .
Örneğin, şöyle bir soru gönderebilirim:
Süper modda sorun yaşıyorum. Kullandığımda M-x sm-compile-code
PayPal hesabımdan para çekiyor.
Çoğaltılacak adımlar:
Süper modu yükle:
(require 'package)
(setq package-load-list
'((super-mode t)))
(package-initialize)
- ile yeni bir dosya açmak
C-x C-f my-code
- bir kod satırı girin:
10 goto 10
- aramak
M-x sm-compile-code
Bunun süper derleyiciyi çağırmasını ve programımı derlemesini bekliyorum. Bunun yerine, minibuffer'da "100 $ 'dan paypal'dan süper mod yazara aktarılan" mesajını görüyorum
GNU Emacs 25.1.50.3
Debian Linux
Süper mod 3.1415
1 hata avcısı paket, bu konuda size yardımcı olabilir (yarı) otomatik olarak init dosyasını bisecting.
emacs -Q
. Bunu, bu soruları yeni kullanıcılar için genel yardım olarak bağlayacak bir şey olarak yazdım.