2012-10-10 14 views
8

ja jak używać C-u w funkcji (na przykład, wyrażenie regularne), w którym wywołanie to C u inny efekt. Jak mogę to zrobić w Emacs? Dokumentacja nie pokazuje, jak to zrobić z Emacsem Lisp.Emacsa Universal argument (C-U) w funkcji

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

Odpowiedz

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

nadzieję, że pomoże.

+0

Doskonały. Czy to, co trzeba i z pewnym wyjaśnieniem. – PascalVKooten

+2

Należy zauważyć, że niezbędna wartość argumentu do emulowania 'C-u' * zmienia się *, w zależności od oczekiwań pierwotnej funkcji (tj. Jej argumentu do' interaktywny'). Jeśli akceptuje "surowy" przedrostek, to chciałbyś przekazać listę ''(4)' zamiast wartości liczbowej '4'. Patrz: 'C-h i g'' (elisp) Argumenty przedrostka "RET" – phils

Powiązane problemy