2009-06-24 15 views
14

Emacs, init.el (या .emacs.el) शुरू करते समय मूल्यांकन किया जाता है। हालांकि, emacsclient शुरू करते समय, कोई समान लिस्प कोड का मूल्यांकन नहीं किया जाता है।Emacsclient प्रारंभ करने के बाद स्वचालित रूप से कुछ लिस्प कोड का मूल्यांकन कैसे करें?

हर बार जब मैं एक नया emacsclient खोलता हूं तो मुझे एक लिस्प फ़ाइल का मूल्यांकन कैसे किया जा सकता है?

(यह फ्रेम विशिष्ट अनुकूलन के लिए आसान हो जाएगा।)

मुझे लगता है इस सवाल का जवाब कुछ हुक का प्रयोग है, लेकिन मैं उपयोग करने के लिए सही हुक लगाने के लिए नहीं कर पा रहे।

मैं आपके उत्तरों की प्रतीक्षा करता हूं।

उत्तर

5

तुम सच में नया फ्रेम अनुकूलन चाहते हैं, वहाँ बनाने के फ्रेम हुक जो एक आर्ग (नया फ्रेम) लेता है ...

आप gnuclient मतलब हैं, तो आप कमांड लाइन विकल्प का उपयोग कर सकते हैं "-eval "कुछ मूल्यांकन करने के लिए (और उसके बाद हमेशा अपने अनुकूलन को निकालने के लिए उपनाम बनाते हैं)।

15

आप हुक 'server-visit-hook पर एक फ़ंक्शन जोड़ सकते हैं, जो हर बार सर्वर कहलाता है (हर बार जब आप emacsclient पर कॉल करते हैं)।

+6

स्पष्ट रूप से यह हुक केवल तभी कॉल किया जाता है जब emacsclient फ़ाइल सूची पास हो जाती है। अगर इसे किसी फ़ाइल को निर्दिष्ट किए बिना बुलाया जाता है, तो हुक नहीं चलाया जाता है - जो परेशान है। – FixMaker

7

मैं सर्वर बफर के व्यवहार को स्वचालित रूप से बदलने के लिए निम्न कोड का उपयोग करता हूं। मैं इसे विशेष रूप से फ़ायरफ़ॉक्स एक्सटेंशन It's All Text के साथ उपयोग करता हूं। उस एक्सटेंशन में, बफर का नाम डोमेन नाम के अनुसार रखा जाता है, ताकि आप फ़ाइल के नाम से मेल खाने के लिए string-match का उपयोग करके कौन से नियम लागू कर सकें।

(defun server-edit-presets() 
    (cond 
    ;; When editing mail, set the goal-column to 72. 
    ((string-match "mail\\.google\\.com\\.[0-9a-z]+\\.txt" (buffer-name)) 
    (longlines-mode-off) 
    (auto-fill-mode 1) 
    (set-fill-column 72) 
    (save-excursion 
     ;; Don't know if this is necessary, but it seems to help. 
     (set-buffer (buffer-name)) 
     (goto-char (point-min)) 
     ;; Replace non-breaking strange space characters 
     (while (search-forward (char-to-string 160) nil t) 
     (replace-match " ")))))) 

(add-hook 'server-visit-hook 'server-edit-presets) 
(add-hook 'server-visit-hook '(lambda() (longlines-mode 1))) 
1

@LSW:

'window-setup-hook की कोशिश करो। यह परेशानियों को संबोधित करता है क्योंकि इसे इमक्स्क्लिएंट फ़ाइल पास नहीं होने पर भी कहा जाता है।

संबंधित मुद्दे

 संबंधित मुद्दे