2009-03-03 10 views
12

मैं Emacs Lisp में उपयोग किए जा सकने वाले गैर-इंटरैक्टिव फ़ंक्शंस की पूरी सूची कैसे प्राप्त करूं?मैं Emacs lisp गैर-इंटरैक्टिव फ़ंक्शंस की सूची कैसे प्राप्त करूं?

इंटरेक्टिव लोगों को सहायता प्रणाली में ढूंढना काफी आसान है, लेकिन मैं उन सभी अन्य कार्यों की पूरी सूची चाहता हूं जो मैं उपयोग कर सकता हूं। उदाहरण के लिए concat, car, cdr, आदि (और अधिमानतः दस्तावेज़ीकरण के साथ)।

धन्यवाद

एड

संपादित करें: उत्तर Jouni के लिए धन्यवाद। मैं उसका जवाब एक सा के साथ चारों ओर निभाई है, और परिणामों को सॉर्ट करने के लिए मिल गया (मुझे सही सॉर्टिंग समारोह को खोजने में मदद करने के लिए अपने कोड के परिणामों का उपयोग!)

(flet ((first-line (text) 
        (if text 
         (substring text 0 (string-match "\n" text)) 
        ""))) 
    (let ((funclist (list))) 
    (mapatoms 
    (lambda (x) 
     (and (fboundp x)      ; does x name a function? 
      (not (commandp (symbol-function x))) ; is it non-interactive? 
      (subrp (symbol-function x))   ; is it built-in? 
      (add-to-list 'funclist 
         (concat (symbol-name x) " - " (first-line (documentation x)) 
           "\n"))))) 
    (dolist (item (sort funclist 'string<)) 
     (insert item)))) 
+0

प्रश्न और उत्तर के लिए धन्यवाद। Emacs सीखने के दौरान बहुत उपयोगी है। – aartist

उत्तर

13

यहाँ मूल विचार है - किसी भी स्पष्ट नहीं अवधारणाओं के लिए Emacs Lisp manual देखते हैं।

(flet ((first-line (text) 
     (if text 
      (substring text 0 (string-match "\n" text)) 
      ""))) 
    (mapatoms 
    (lambda (x) 
    (and (fboundp x)       ; does x name a function? 
      (not (commandp (symbol-function x))) ; is it non-interactive? 
      (subrp (symbol-function x))   ; is it built-in? 
      (insert (symbol-name x) " - " (first-line (documentation x)) "\n"))))) 
+1

वाह, यह शानदार है। मैंने कोड के उस छोटे टुकड़े से लगभग दस नई चीजें सीखीं। धन्यवाद। – Singletoned

0

आप भी बदतर look at the website

+0

मैंने बहुत कुछ किया है, लेकिन मुझे कार्यों की एक सूची नहीं मिल रही है। एक ऐसा पृष्ठ है जो बिल्कुल सब कुछ की एक सूची है, लेकिन कार्यों के लिए नहीं। और मैं उम्मीद कर रहा था कि इमैक में कुछ बनाया जाएगा। – Singletoned

0

कर सकता है खाली इनपुट के साथ apropos कमांड का प्रयास करें।

+0

यह सब कुछ सूचीबद्ध करता है, और सी-एच एफ उस दृष्टिकोण से बेहतर होगा। – Singletoned

+0

क्षमा करें, यह सबकुछ सूचीबद्ध नहीं करता है। बाहर निकलता है इसमें गैर-इंटरैक्टिव कमांड शामिल नहीं हैं। – Singletoned

+0

apropos.el को देखो और फिर अपना खुद का लिखें। – starblue

0

कभी नहीं। यह पता चला है कि सी-एच एफ (वर्णन फ़ंक्शन) में गैर-इंटरैक्टिव फ़ंक्शंस शामिल हैं, हालांकि मुझे अभी भी गैर-इंटरैक्टिव वाले (विशेष रूप से केवल निर्मित) को देखने/खोजने का कोई तरीका ढूंढने में दिलचस्पी होगी।

1

आप obarray की सामग्री की जांच कर सकते हैं, हालांकि इसमें "सभी कार्यों" के बजाय सभी प्रतीकों शामिल हैं।

वैकल्पिक रूप से, निम्नलिखित काम कर सकता है (सीएल संगतता पैकेज के कुछ हिस्सों में खींच लेंगे):

(कम करने (लैम्ब्डा (तथा अब तक अगले) (यदि (fboundp अगले) (विपक्ष अगले तो है- अब तक) तो अब तक)) obarray : प्रारंभिक-मूल्य नहीं के बराबर)
4

apropos बजाय apropos-command की कोशिश करो। यह आपको केवल इंटरैक्टिव वाले न केवल सभी कार्यों को देगा। C-h a बाद में डिफ़ॉल्ट रूप से बाध्य है, लेकिन यदि आप बहुत सी चीज हैकिंग कर रहे हैं, तो मैं इसे पूर्व में बाध्य करने की अनुशंसा करता हूं।

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