मेरा emacs संस्करण 24.3.1 है।
मैं समझता हूं कि मुझे ओब्-सील ( यहां से उपलब्ध ) को एक ऐसे मार्ग पर रखना होगा जहां एमएसीएस इसे पढ़ सकते हैं।
मैंने पहली बार उस .el फ़ाइल के कोड को मेरी .emacs फ़ाइल में कॉपी किया और उन्हें पुनः आरंभ किया। तब मैं एक C कोड ब्लॉक में गया (एक org फ़ाइल के भीतर) और इसे निष्पादित करने की कोशिश की (Cc Cc का उपयोग करके)। minibuffer ने कहा कि 'C के लिए कोई org-babel-execute फ़ंक्शन नहीं है। एक ही कहानी एक C ++ कोड ब्लॉक को निष्पादित करने की कोशिश के साथ खेला गया। ध्यान दें कि आर और अजगर मेरी ऑर्ग फाइलों के भीतर से पूरी तरह से मूल्यांकन करते हैं। समस्याओं को केवल इन संकलित भाषाओं के साथ लगता है।
फिर मैंने यह देखने की कोशिश की कि ~ / .emacs.d निर्देशिका के अंदर यह देखने में मदद मिलेगी कि क्या मदद करता है। पुनः आरंभ किए गए emacs और जाँच की। यह काम नहीं किया।
तब मैंने इसे एक निर्देशिका ~ / .emacs.d / lisp में डालने की कोशिश की और निम्नलिखित लाइनों को मेरे .emacs में जोड़ा।
(add-to-list 'load-path "~/.emacs.d/lisp/")
(load "ob-C.el")
(require 'ob-C)
Emacs को पुनः आरंभ करने के बाद, C या C ++ कोड ब्लॉक का मूल्यांकन एक org फाइल के भीतर से करने पर भी काम नहीं करता है। मैं एक ही त्रुटि "C के लिए कोई org-babel-execute फ़ंक्शन" या "C ++ के लिए कोई org-babel-execute फ़ंक्शन" नहीं रख रहा हूं।
अपडेट करें
मैंने अपने emacs संस्करण को 24.5 में अपग्रेड किया है, मेरी ~ / .emacs.site निर्देशिका में पिछले सभी कल्प और मेलपा उपनिर्देशिकाओं को हटा दिया है। संदेह है कि यह उस क्रम के साथ करना था जिसमें मैंने अपना स्थान रखा था
(custom-set-variables
'(org-babel-load-languages
(quote
((emacs-lisp . t)
(C . t)
(css . t)
(sh . t)
(awk . t)
(R . t))))
तथा
;; load the pathnames to custom lisp files
(add-to-list 'load-path "~/.emacs.d/lisp/")
(load "ob-C.el")
(require 'ob-C)
कोड ब्लॉक, मैं लोड "ओब-सीएल" को ऑर्ग-बेबेल-लोड-लैंग्वेज चीज़ से पहले डाल देता हूं। मैंने फिर कई बार c ++ कोड ब्लॉक किया। कोई भाग्य नहीं।
तब मैंने सब कुछ हटा दिया (.emacs फ़ाइल में कस्टम-सेट-चर ब्लॉक को साफ कर दिया) और अब .emacs फ़ाइल की तरह दिखता है
;; load the pathnames to custom lisp files
(add-to-list 'load-path "~/.emacs.d/lisp/")
(load "ob-C.el")
(require 'ob-C)
;; load the languages that are needed
(org-babel-do-load-languages
'org-babel-load-languages '((C . t)))
यह अभी भी काम नहीं कर रहा है।
वह कोड जो मैं ऑर्गेमोड बफर में मूल्यांकन करने की कोशिश कर रहा हूं वह है:
#+BEGIN_SRC c
printf("Hello world");
#+END_SRC
Emacs को पुनरारंभ करने और उपरोक्त कोड ब्लॉक को निष्पादित करने का प्रयास करने के बाद मेरा संदेश बफर इस तरह दिखता है:
Loading /home/taeten/.emacs.d/lisp/ob-C.el (source)...done
Wrote /home/taeten/.emacs.d/.emacs.desktop.lock
Desktop: 1 frame, 0 buffers restored.
For information about GNU Emacs and the GNU system, type C-h C-a.
Quit [2 times]
Making completion list... [3 times]
org-babel-execute-src-block: No org-babel-execute function for c! [5
times]
Ignoring unknown mode `elisp-mode'
File local-variables error: (void-function elisp-mode)
byte-code: Beginning of buffer [6 times]
byte-code: Beginning of buffer
load
औरrequire
बिट्स की जरूरत नहीं है ।require
लोडिंग करता है (यदि फ़ाइल में एकprovide
स्टेटमेंट होता है, जो इस मामले में ऐसा करता है), लेकिन आपको इसकी आवश्यकता भी नहीं हैrequire
क्योंकि यह द्वारा नियंत्रित किया जाता हैorg-babel-do-load-languages
, तो आपकोorg
किसी भी होने से पहले यह सुनिश्चित करने की आवश्यकता होती है। इसके अलावा, मुझे लगता है कि यहC
नहीं हैc
, क्या आपने कोशिश की?