एमएसीएस में प्रमुख-मोड विशिष्ट कीबाइंडिंग सेट करना


9

मेरे में .emacsफ़ाइल, मैं एक कुंजी एक विशिष्ट प्रमुख मोड (स्थापित करने के लिए बाध्यकारी जोड़ना चाहते हैं coffee-compile-fileके लिए C-c C-cकॉफी मोड में)।

मैंने उपयोग करने के बारे में बहुत सारे निर्देश पाए हैं local-set-keyऔर global-set-keyइसलिए, मैं कॉफी-मोड में एक फ़ाइल खोलने के बाद आसानी से इस बंधन को जोड़ सकता हूं, लेकिन इसके लिए इसे संभालना अच्छा होगा .emacs

जवाबों:


8

मोड हुक का उपयोग करें। C-h mप्रमुख मोड के बारे में जानकारी दिखाता है, आमतौर पर यह किस हुक (समर्थन) को शामिल करता है; तब आप कुछ ऐसा करते हैं

(add-hook 'coffee-mode-hook ;; guessing
    '(lambda ()
       (local-set-key "\C-cc" 'coffee-compile-file)))

6

आप मोड विशिष्ट मानचित्र में कुंजी को परिभाषित कर सकते हैं, जैसे कुछ:

(add-hook 'coffee-mode-hook
    (lambda ()
        (define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file)))

या, अधिक सफाई से:

(eval-after-load "coffee-mode"
    '(define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file))

दूसरा कथन केवल एक बार होने के लिए महत्वपूर्ण परिभाषा का कारण बनता है, जबकि पहला कारण हर बार होने वाली परिभाषा coffee-modeसक्षम होता है (जो ओवरकिल है)।


2
FYI करें: ये परिंदे गलत जगह पर हैं। इस ऐड-हुक को पढ़ना चाहिए: (add-hook 'coffee-mode-hook (lambda () (define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file)))
ओवेनमर्शॉल

इसके अलावा, इसे हुक में क्यों परिभाषित किया गया है?
निकाना रेक्लाविक्स 3

@NikanaReklawyks तुम सही हो, इसे एक हुक में परिभाषित करना eval-after-loadइस मामले में एक बयान का उपयोग करने जितना साफ नहीं है । मैं उत्तर को उचित रूप से अपडेट करूंगा।
ट्रे जैक्सन

3

24.4 के eval-after-loadसाथ उत्सर्जित Emacs with-eval-after-load:

** New macro `with-eval-after-load'.
This is like the old `eval-after-load', but better behaved.

तो जवाब होना चाहिए

(with-eval-after-load 'coffee-mode
  (define-key coffee-mode-map (kbd "C-c C-c") 'coffee-compile-file)
  (define-key erlang-mode-map (kbd "C-c C-m") 'coffee-make-coffee)
  ;; Add other coffee commands
)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.