2012-10-10 17 views
8

में मैं एक समारोह में सी-यू उपयोग करना चाहते हैं (उदाहरण के लिए, regexp) जहां सी-यू के साथ बुला एक अलग प्रभाव पड़ता है। मैं Emacs में यह कैसे कर सकता हूँ? प्रलेखन यह नहीं दिखाता है कि Emacs Lisp के साथ ऐसा कैसे करें।Emacs: यूनिवर्सल तर्क (सी-यू) एक समारोह

(defun test() 
    (interactive) 
    (align-regexp)) ; I would like to add the C-u prefix to this. 

उत्तर

10
(defun my/test() 
    (interactive) 
    (let ((current-prefix-arg 4)) ;; emulate C-u 
    (call-interactively 'align-regexp) ;; invoke align-regexp interactively 
    ) 
) 

आशा है कि मदद करता है।

+0

उत्कृष्ट। क्या कुछ स्पष्टीकरण के साथ और इसके साथ क्या है। – PascalVKooten

+2

ध्यान दें कि मूल कार्य की अपेक्षाओं के आधार पर 'सी-यू' * अनुकरण * अनुकरण करने के लिए आवश्यक तर्क मान (यानी 'इंटरैक्टिव' के लिए इसका तर्क)। यदि यह "कच्चे" उपसर्ग तर्क स्वीकार करता है, तो आप संख्यात्मक मान '4' की बजाय सूची '' (4)' को पास करना चाहते हैं। 'सी-एच i g' '(elisp) उपसर्ग कमांड तर्क'' RET' देखें – phils

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