एक संगठन-मोड फ़ाइल में की तरह कोड के साथ निम्नलिखित:इंडेंट कोड
#+begin_src emacs-lisp
(add-to-list 'org-tab-before-tab-emulation-hook
(lambda()
(when (within-the-body-of-a-begin-src-block)
(indent-for-tab-command--as-if-in-lisp-mode))))
#+end_src
मैं टैब कुंजी की तरह यह होगा के रूप में कोड इंडेंट करने के लिए होता है अगर यह एक बफर में थे लिस्प मोड में।
क्या मैं जरूरत है:
- एक तरह से बाहर है कि क्या कर्सर एक src ब्लॉक के भीतर है लगाने की। इसे हेडर लाइन पर ही ट्रिगर नहीं करना चाहिए, क्योंकि उस स्थिति में डिफ़ॉल्ट ऑर्गे फोल्डिंग होनी चाहिए।
- शीर्षलेख में निर्दिष्ट मोड (emacs-lisp) के अनुसार कोड को इंडेंट करने का एक तरीका।
संगठन पहले से ही मोड के अनुसार स्रोत ब्लॉक को हाइलाइट कर सकता है, और टैब हुक वहां हैं। यह सक्षम लगता है।
(defun indent-org-src-block-line()
"Indent the current line of emacs lisp code."
(interactive)
(let ((info (org-babel-get-src-block-info 'light)))
(when info
(let ((lang (nth 0 info)))
(when (string= lang "emacs-lisp")
(let ((indent-line-function 'lisp-indent-line))
(indent-for-tab-command)))))))
(add-to-list 'org-tab-before-tab-emulation-hook
'indent-org-src-block-line)
यह केवल Emacs-तुतलाना ब्लॉक संभालता है:
चूंकि आप वर्तमान कोड संपादित कर रहे हैं, तो संपादन मोड में प्रवेश करने के लिए 'सी-सी '' '' पर्याप्त होगा? – gongzhitaao
हां, मुझे उस शॉर्टकट के बारे में पता है, लेकिन कई छोटे स्निपेट्स को संपादित करते समय यह बहुत भारी लगता है, जैसे कि emacs config-in-org फ़ाइल में। – user103576
इस [थ्रेड] (http://lists.gnu.org/archive/html/emacs-orgmode/2012-02/msg00847.html) पर उपयोगी हो सकता है – gongzhitaao