हर कमांड एक फंक्शन है, लेकिन हर फंक्शन एक कमांड भी नहीं है। 1
एक कमांड में एक कॉल शामिल है interactive
; यही कारण है कि आदेशों को आमतौर पर "इंटरैक्टिव कार्यों" के रूप में संदर्भित किया जाता है। कमानों के माध्यम से आह्वान किया जा सकता है M-x name-of-command
RET, और वे एक महत्वपूर्ण अनुक्रम के लिए भी बाध्य हो सकते हैं। नियमित रूप से कार्य करता है नहीं करने के लिए एक फोन शामिल हैं interactive
, कर सकते हैं नहीं का उपयोग कर कहा जा M-x, और तुम बाँध एक कुंजी क्रम के लिए नहीं कर सकते हैं उन्हें। एक फ़ंक्शन चलाने के लिए जो इंटरएक्टिव नहीं है, आप दबा सकते हैं M-:( eval-expression
), फ़ंक्शन के नाम को दर्ज करें, जो किसी भी तर्क के लिए मानों द्वारा पालन किया जाता है जो इसे कोष्ठक में संलग्न हैं, और प्रेस करें RET:
M-: (name-of-function arg1 arg2 arg3)
RET
यदि फ़ंक्शन को वर्तमान बफ़र पर संचालित करने के लिए नहीं माना जाता है, तो आप भी दर्ज कर सकते हैं
(name-of-function arg1 arg2 arg3)
में *scratch*
बफर और प्रेस C-x C-e( eval-last-sexp
बिंदु) के साथ समापन कोष्ठक के बाद तैनात।
एक फ़ंक्शन bar
को एक कमांड के रूप में उपलब्ध कराने के लिए आप इसे कस्टम इंटरैक्टिव फंक्शन ( foo
) में निम्नानुसार लपेट सकते हैं:
(defun foo ()
(interactive)
(bar))
बेशक, यदि bar
आप एक या अधिक तर्क लेते हैं , तो आपको foo
काम को सही ढंग से करने के लिए उन्हें आपूर्ति करना होगा ।
यदि आप लोगों को "फ़ंक्शन" और "कमांड" का उपयोग करते हुए देख रहे हैं, तो यह संकेत कर सकता है (संदर्भ के आधार पर) कि वे अंतर्निहित अवधारणाओं के बीच अंतर के बारे में नहीं जानते हैं।
1 ध्यान दें कि मैं defun
यहां बात कर रहा हूं । जैसा कि @Stefan टिप्पणियों में बताते हैं, कीबोर्ड मैक्रोज़ एक विशेष मामला है: उन्हें कमांड माना जा सकता है , लेकिन वे फ़ंक्शन नहीं हैं।
C-h i
, Elisp मैनुअल चुनें ,i command
- आपको नोड में सही डालता हैWhat is a function?
, जो इस क्रिस्टल को स्पष्ट करता है। उपयोगकर्ताओं को Emacs पूछने में मदद करें। (सिर्फ एक राय।)