(Aksine, bu sorunun, belirli bir istemin görünmesine neden olan şeyi ortadan kaldıran gönderici tarafından "yanıtlandığı" gibi, bu soru daemon modunda nasıl başlatılır ve etkileşimli iletişim kutuları bastırılır?) İle aynı değildir .)
Henüz var olmayan bir minibuffer'da görüntülenen bir bilgi istemine cevap beklemek için sonsuza dek asılı kalmanın genel bir yolu olup olmadığını bilmek istiyorum emacs --daemon
.
Emacs başlatma sırasını tamamlayana kadar sunucu başlatılmadığından, bu istemleri yanıtlamak için bir emacsclient ile bağlanmak imkansızdır. (Bu, boş dizeye ALTERNATE_EDITOR ayarlanmışsa, emacsclient
sunucunun yeni bir arka plan programı başlatmasını bulamayan bir hale getirirse, tüm sıkışmış ve bekleyen birden çok Emacs arka plan programı ile karşılaşabilirsiniz.) killall emacs
Sorunu düzeltmek zorundayım devam etmeden önce.
Ben tanımlamak zaman başlangıçta bir istem neden whack-a-köstebek oynayabilir (daemon modunda modunda Emacs başlatarak ve ne istediğini görerek), ama bir çözüm değil çünkü bir sonraki daemon durduramaz yeni bir nedenden dolayı başlangıçta asılı kalmaktan.
Bir örnek vermek gerekirse, askıda kalmasının yaygın bir nedeni, bir sistem yeniden başlatıldıktan veya Emacs çökmesinden sonra, ilk yeniden başlatma sonrası Emacs'ın geçersiz Emacs'tan kilit dosyalarını çalmanın uygun olup olmadığını bilmek istediği zamandı. Bu istemin her zaman etkileşim olmadan "evet" yanıtı vermesini sağlayacak tavsiyeler oluşturarak bunu düzeltebilirim. Ama sonra, önceki oturumda kaydedilen dosyalardan biri sudo veya SSH parolası gerektiren bir TRAMP dosyasıydı, bu yüzden daemon bir parola isteminde bekletildi. Bu yüzden , rahatsız edici dosyaları kaldırmak için oturum dosyasını ( vi
veya emacs -q
! İle) elle düzenleyerek düzeltiyorum - ancak bir dahaki sefere olmasını engellemiyor.
Böylece, oturumumu başlangıçta otomatik olarak yüklemeyi durdurabilir ve ilk emacsclient'imden manuel olarak yürütmem gereken bir komuta değiştirebilirim. Ancak oturumumu arka planda yüklemiyorsa, kullanmaya hazır olduğum zaman hazırdır, artalan sürecinin tüm amacı kaybolur!
Yani ne istiyorum:
- (En İyi) Minibuffer istemlerini ertelemenin bir yolu, bir başlatma işlemini tamamlarken hala bir emacclient açana kadar.
- (OK) Yukarıda açıklandığı gibi tavsiye etmediğim tüm minibuffer istemlerini
no
yapmanın bir yolu, bir emacclient çalışmadığı sürece geri dönmektir. TRAMP arabellekleri çoğunlukla çalıştığı sürece hata vererek yaşayabilirim.
Bu hedeflerden herhangi birine ulaşmanın bir yolu var mı?
(read-desktop)
çalıştırmadan önce, o zaman, emacs --daemon
içine bir tamsayı koyarak sahte kilit dosyası oluşturmak .emacs.desktop.lock nerede ( koymak bu dosyayı maalesef senin yapılandırmasına bağlıdır , ama muhtemelen ya homediriniz ya da ~ / .emacs.d / .