Bu oldukça basit bir sorudur, ancak yeni bir dosyayı ayrı bir çerçevede (yeni çerçeve) emaclardan açmak veya dosyayı bir emacsclient örneğinde açmak arasındaki pratik fark nedir? Bir terminalde çalışıyorsanız farkın açık olduğunu görebiliyorum ... ama emacsclient ek olarak bu tampon bellekte (tampon-menü) ya da ido-mode tarafından erişilen tamponların listesini bu özel emacsclient örneğinde açılan tamponlarla kısıtlayabilir mi?Emacs - emacsclient veya yeni kare?
cevap
İki durum arasında, sunucunun C-x #
'u (server-edit
) etkinleştirmek için arabellek-yerel durumunu ayarlamasından başka hiçbir fark yoktur.
M-x list-buffers
davranışı sınırlayabilir
: (
(defadvice list-buffers-noselect (before list-buffers-noselect-limit-to-those-for-emacsclient activate)
"When the current buffer is a being viewed by an emacclient, restrict the buffers to those associated with the emacsclient"
(when (and (null (ad-get-arg 1)) server-buffer-clients)
(let ((blist (delete-dups (reduce 'append
(mapcar (lambda (proc) (process-get proc 'buffers))
server-buffer-clients)))))
(ad-set-arg 1 blist))))
Şimdi
Eğer emacsclient
tarafından ziyaret edilen bir tampon içerisinde M-x buffer-menu
yaptığınızda, yalnızca aynı istemci tarafından ziyaret diğer tampon bkz lar). Tampon bir emacsclient
tarafından ziyaret edilmediğinde normal çalışır.
ido
kullanmayın, ancak özelleştirmenin benzer olacağını düşünün (bu öneri işe yaramıyorsa).
Ayrıntılar, emacsclient
çalıştırdığınızda, açılan arabelleklerin sunucu işlemiyle ilişkilendirilmesidir (birden fazla olabilir, çünkü aynı dosyayı birden çok emacsclient
çağrısıyla açabilirsiniz). Bir ara belleğin sunucu istemcileri, arabellek yerel değişkeni server-buffer-clients
'da depolanır.
emacsclient
belirli bir çağırma ile ilişkili olan tamponlar bulmak bu emacsclient için süreç bulmak ve yapmak için:
(process-get proc 'buffers)
(
proc
özellikle emacsclient işlemdir burada -
server-buffer-clients
bulunan listesinin elemanları biri).
Bu, tüm önerileri yapar.
Emacsserver çalıştırıldığı sürece emacs 23'te fark yoktur. Arabellek listesi her birinde aynı olacaktır.
Teşekkürler - evet çoğunlukla doğru görünüyor ancak Trey'in işaret ettiği gibi, müşterinin belirli bir dosyaya erişme konusunda emacs konusunda bir miktar farkındalık var gibi görünüyor ... ama girişiniz için teşekkürler! – hatmatrix
- 1. emacsclient window focus
- 2. Boru emacs yeni tampon Örneğin
- 3. Neden emacsclient sadece bash <code>emacs --daemon</code> yürüttükten sonra
- 4. Gnus for Emacs için yeni posta bildirimleri
- 5. Emacs
- 6. Dikey bölme kullanarak yeni Emacs arabelleği aç
- 7. emacs,
- 8. Emacs
- 9. jQuery kare kare olacak şekilde tüm resimleri yeniden boyutlandır
- 10. Qt Creator, Emacs keybind
- 11. Emacs
- 12. Emacs tamamlanması: otomatik tamamlama veya şirket?
- 13. Data.frame veya data.table öğesinden bir kare bitişiklik matrisi oluşturun
- 14. mükemmel kare çiftleri
- 15. Emacs, R, Sweave: Emacs
- 16. Birim güvenli kare kökleri
- 17. Tkinter Canvas'da Kare Döndürme
- 18. Scala'da kare ifade etme
- 19. Yuvarlatılmış köşelerle kare çizme
- 20. Sıfırlama tanımları ve kapatmadan .emacs yeniden veya Bildiğim kadarıyla anladığım kadarıyla Emacs ve yeniden aç tampon
- 21. Emacs
- 22. Emacs
- 23. Emacs
- 24. Emacs
- 25. Emacs
- 26. Emacs
- 27. Emacs
- 28. Emacs
- 29. emacs-daemon başlangıç dosyası otomatik kaydetme verisi donuyorsa donuyor
- 30. boole verilen liste bir kare
Teşekkürler! Jed'in belirttiği gibi, yeni bir çerçeve açıldığında fark yoktur, ancak emacsclient -t ile yeni bir dosya açtığımda yukarıdaki tavsiyede bulunur. İlginç ... ido modu ve muhtemelen ibuffer için buna bakacağım. Çok takdir! – hatmatrix
Bunu ido ile çalıştınız mı? – tatsuhirosatou