OS X 10.6 üzerinde gnu emacs 23.3.1 kakao inşa çalıştırıyorum.
Aşağıdakileri ~ / Library / LaunchAgents / gnu.emacs.daemon.plist'e ekledim.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>gnu.emacs.daemon</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Emacs.app/Contents/MacOS/Emacs</string>
<string>--daemon</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>ServiceDescription</key>
<string>Gnu Emacs Daemon</string>
</dict>
</plist>
Bu sorta çalışıyor ama renk temamın düzgün çalışmadığını fark ettim. Sonra init dosyama aşağıdakileri eklediğimi hatırladım:
(when window-system
(require 'alpha)
(require 'color-theme-ir-black)
(modify-frame-parameters (selected-frame) '((alpha . 85)))
(color-theme-ir-black))
Bir daemon pencere sistemi olarak başlatıldığında görünüşte yanlıştır ve bu mantıklıdır, ancak bunu eklememin nedeni, bazen ssh vb. (pencere sistemi ...). --Daemon ile başladığında emac'ları pencere modunu başlatmaya zorlamanın bir yolu var mı?
Fark ettiğim bir diğer konu, basın modunu (silme çerçevesi) dameon modunda çalıştırdığımda, tek görünür veya ikonlu çerçeveyi silme girişiminde bulunmadığım ve emac'ların arka planda çalışmaya devam ettiği. Bunu çoğunlukla seviyorum, ancak son kare öldürüldükten sonra artık doktordan emacları yeniden açamayacağımı fark ettim ve emacs aktive olacak ve menüler görüntülense de çalışmıyorlar ve yeni bir çerçeve oluşturamıyorum komut satırındaki emacsclient kullanımı hariç. Başka kimsede bu sorun ve / veya geçici çözüm önerisi var mı? belki sw yerine son kare ve iconify-frame olup olmadığını tespit etmek için bağlayabilirim, ama neden onun son pencere olduğunu düşünmüyor ve ilk etapta öldürmeme izin vermiyor.
GÜNCELLEME:
Steve Purcell'in aşağıdaki blogunda çok benzer bir sorunu gideren bir yorum buldum: http://emacs-fu.blogspot.com/2009/03/color-theming.html
Görünüşe göre, yeni oluşturulan çerçeveyi ayarlamak için 'make-make-frame-fonksiyonlar kancasını kullanmak ve aynı zamanda (setq color-theme-is-global nil)' yi kullanmaktır, böylece her karenin kendi renk teması olabilir. Yani initimin ilgili bölümleri şu şekilde görünüyor:
(defvar after-make-console-frame-hooks '()
"Hooks to run after creating a new TTY frame")
(defvar after-make-window-system-frame-hooks '()
"Hooks to run after creating a new window-system frame")
(defun run-after-make-frame-hooks (frame)
"Selectively run either `after-make-console-frame-hooks' or
`after-make-window-system-frame-hooks'"
(select-frame frame)
(run-hooks (if window-system
'after-make-window-system-frame-hooks
'after-make-console-frame-hooks)))
(add-hook 'after-make-frame-functions 'run-after-make-frame-hooks)
(add-hook 'after-init-hook (lambda ()
(run-after-make-frame-hooks (selected-frame))))
(setq color-theme-is-global nil)
(add-hook 'after-make-window-system-frame-hooks
'(lambda ()
(require 'alpha)
(require 'color-theme-ir-black)
(modify-frame-parameters (selected-frame) '((alpha . 85)))
(color-theme-ir-black)
(global-set-key (kbd "s-w") 'delete-frame)))
Ancak, hala emacs daemon olarak başlatıldığında silme çerçevesinin son kareyi kapatması ve emacsclient kullanarak başka bir çerçeve oluşturmama izin vermeme sorunu yaşıyorum.
GÜNCELLEME:
Ben ise eval (frame-list)
ben bile olsa sıralanan 2 kare olduğunu görmek sadece tek görülebilir. Emacs /Applications/Emacs.app
emacsclient yerine open ile başlatırsam bunun gerçekleşmediğini fark ettim . Normalde emacs'ı e='emacsclient -c -n '
ikinci çerçeveyi oluşturan bir takma adla komut satırından başlatırım . Diğer çerçeveye sadece emacs'ı open komutuyla başlatarak bağlanmış gibi görünebilirim. Ben emacsclient -n somefile -c
hiçbir şey almadan denerseniz ve ben çalıştırırsanız emacsclient -n -e '(frame-list)'
ben -c
yeni bir çerçeve oluşturmak veya uygulamalar klasöründen emacs açmak için kullanın kadar sadece görünür olmayan bir çerçeve görüyorum .