كيف يمكنني الحصول على قائمة من إيماكس ثغة الوظائف غير التفاعلية؟

StackOverflow https://stackoverflow.com/questions/605785

  •  03-07-2019
  •  | 
  •  

سؤال

وكيف يمكنني الحصول على قائمة كاملة من وظائف غير التفاعلية التي يمكن استخدامها في إيماكس اللثغة؟

وهم التفاعلية سهلة بما يكفي لتجد في نظام المساعدة، ولكن أريد على قائمة كاملة لجميع وظائف أخرى يمكنني استخدامها. على سبيل المثال concat، car، cdr، وما إلى ذلك (ويفضل أن يكون ذلك مع وثائق).

والشكر

وإد

وتحرير: أجاب بفضل جوني. لقد لعبت حوالي مع جوابه قليلا، وحصلت عليه لفرز النتائج (باستخدام نتائج رمز له لمساعدتي في العثور على وظيفة الفرز الصحيحة!)

(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))))
هل كانت مفيدة؟

المحلول

إليك الفكرة الأساسية - انظر إيماكس اللثغة دليل لأي مفاهيم غير واضحة.

(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")))))

نصائح أخرى

وحاول apropos بدلا من apropos-command. والتي تعطيك جميع وظائف، وليس فقط تلك التفاعلية. لا بد C-h a افتراضيا لهذا الأخير، ولكن إذا كنت تريد أن تفعل الكثير من القرصنة elisp، فإنني أوصي ملزمة لالسابق.

هل يمكن أن تحقق محتويات obarray، على الرغم من أن يحتوي على جميع الرموز، بدلا من "جميع وظائف".

وبدلا من ذلك، ما يلي قد تفعل خدعة (ستسحب في أجزاء من حزمة التوافق CL):

<اقتباس فقرة> (الحد (لامدا (بجانب ذلك بعيد) (إذا كان (fboundp المقبل) (سلبيات المقبل حتى أقصى) حتى بعيد))     obarray     : لا شيء القيمة الأولية)

هل يمكن أن تفعل أسوأ من إلقاء نظرة على الموقع

وحاول الأمر بالمناسبة مع مدخلا فارغ.

فما باللك. وتبين أن الفصل و (وصف وظيفة) لا تشمل وظائف غير التفاعلية، على الرغم من أنني كنت لا تزال ترغب في العثور على وسيلة لمشاهدة / تبحث عن تلك غير التفاعلية (خاصة فقط بنيت في تلك).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top