जब मैं C-h f
या या C-h v
करता हूं, तो सहायता मुझे बताती है कि प्रतीक किस फ़ाइल को परिभाषित किया गया है या कहां से इसे स्वत: लोड किया जाएगा। मैं प्रोग्रामिंग के समान जानकारी कैसे प्राप्त कर सकता हूं?Emacs Lisp में, यह पता लगाने के लिए कि प्रतीक कहां परिभाषित किया गया है
5
A
उत्तर
9
कुछ खुदाई पता चलता है कि
(find-lisp-object-file-name object type)
चाल करना चाहिए।
(find-lisp-object-file-name 'goto-line 'function)
;; => "/usr/local/Cellar/emacs/24.3/share/emacs/24.3/lisp/simple.el"
संपादित करें:: मैं इस जानकारी को कैसे पता चला: एक उदाहरण के रूप
सबसे पहले मैं C-h k C-h f
किया यह पता लगाने की क्या C-h f
के लिए बाध्य है। परिणाम describe-function
है, तो इसके लिए स्रोत देखने के लिए C-h f describe-function
करें। मैंने देखा कि यह अनिवार्य रूप से describe-function-1
के आसपास एक इंटरैक्टिव रैपर था, इसलिए मैं इसके लिए स्रोत पर कूद गया। वहाँ वहाँ में सामान का एक बहुत है, लेकिन उपयुक्त पंक्ति है:
(file-name (find-lisp-object-file-name function def))
खुलासा कि find-lisp-object-file-name
आंतरिक रूप से यह काम करने के लिए इस्तेमाल किया कार्य है।
2
जेम्स पोर्टर के जवाब देने के लिए जोड़ने के लिए
;;; run from: emacs -q
(require 'cl) ; for incf
(print (list
;; goto-line is a function defined in simple.el
(find-lisp-object-file-name 'goto-line (symbol-function 'goto-line))
;; print is a function defined in C
(find-lisp-object-file-name 'print (symbol-function 'print))
;; rx is an autoload from rx.el
(find-lisp-object-file-name 'rx (symbol-function 'rx))
;; incf is an alias for cl-incf defined in cl.el
(find-lisp-object-file-name 'incf (symbol-function 'incf))
;; cl-incf is defined in cl-lib.el
(find-lisp-object-file-name 'cl-incf (symbol-function 'cl-incf))))
;; => ("c:/run/Emacs/lisp/simple.el" C-source
;; "c:/run/Emacs/lisp/emacs-lisp/rx.el" "c:/run/Emacs/lisp/emacs-lisp/cl.el"
;; "c:/run/Emacs/lisp/emacs-lisp/cl-lib.el")
(print (list
;; print-circle is a variable defined in C
(find-lisp-object-file-name 'print-circle 'defvar)
;; indent-line-function is a variable defined in indent.el
(find-lisp-object-file-name 'indent-line-function 'defvar)))
;; => (C-source "c:/run/Emacs/lisp/indent.el")
संबंधित मुद्दे
- 1. यह पता लगाने के लिए कि क्या फ़ंक्शन को स्थानीय रूप से परिभाषित किया गया है?
- 2. यह पता लगाने के लिए कि मेमोरी लीक कहां है?
- 3. यह पता लगाने के लिए कि मेरी साइट कहां है
- 4. Emacs Lisp में, मैं कैसे जांचूं कि एक चर परिभाषित किया गया है या नहीं?
- 5. __dso_handle कहां परिभाषित किया गया है?
- 6. वर्तमान में किस ऑब्जेक्ट पर ध्यान केंद्रित किया गया है यह पता लगाने के लिए कि
- 7. यह पता लगाने के लिए कि विंडोज
- 8. सी #: यह पता लगाने के लिए कि किस एप्लिकेशन पर ध्यान केंद्रित किया गया है
- 9. यह पता लगाने के लिए कि क्या जेएमएस कनेक्शन है?
- 10. vim/macvim: पता लगाएं कि एक विधि/प्रतीक को परिभाषित किया गया है
- 11. jQuery स्रोत कोड में jQuery.ajax कहां परिभाषित किया गया है?
- 12. यह पता लगाने के लिए कि कौन से फ़ंक्शंस को रेखांकित नहीं किया गया था
- 13. हास्केल (। :) ऑपरेटर कहां परिभाषित किया गया है?
- 14. यह पता लगाने के लिए कि क्या मेरे ऑब्जर्जेबल कोलेक्शन में कोई आइटम बदल गया है
- 15. यह पता लगाने के लिए कि मेरा आवेदन क्यूटी में फोकस खो गया है?
- 16. यह पता लगाने के लिए कि क्या JIT उपलब्ध है
- 17. Emacs Lisp
- 18. यह पता लगाने के लिए ईवेंट <input> में पाठ स्क्रॉल किया गया है?
- 19. यह पता लगाने के लिए कि क्या NSScrollView वर्तमान में
- 20. emacs - Emacs Lisp मोड में स्वत: पूर्णता
- 21. यह पता लगाने के लिए कि क्या स्पिइट को pygame
- 22. Emacs Lisp
- 23. यह पता लगाने के लिए कि खिड़की कोको
- 24. जब Emacs Lisp
- 25. Emacs और Emacs Lisp
- 26. Emacs Lisp
- 27. टीएफएस 2012 में फ़िल्टर कहां परिभाषित किया गया है?
- 28. क्या यह परिभाषित किया गया है?
- 29. Misbehaving Emacs Lisp प्रोफाइलिंग के लिए युक्तियाँ?
- 30. यह पता लगाना कि कोई HttpModule लोड किया गया है
'(लगता है-तुतलाना-वस्तु-फ़ाइल-नाम 'गोटो लाइन' समारोह) मेरे लिए' 'रिटर्न nil'। '(find-lisp-object-file-name 'गोटो-लाइन (प्रतीक-फ़ंक्शन' गोटो-लाइन)) 'फ़ाइल नाम लौटाता है, जैसा कि उनके उत्तर में @ jisang-yoo द्वारा वर्णित है। – mgalgs