emacs Lisp вызывает функцию с аргументом префикса программно

Я хочу вызвать функцию из некоторого кода elisp, как если бы я вызвал ее в интерактивном режиме с аргументом префикса. В частности, я хочу вызвать grep с префиксом.

Ближе всего к тому, чтобы заставить его работать, было использование execute-extended-command , но для этого все еще требуется, чтобы я набирал команду, которую хочу для вызова с префиксом ...

;; calls command with a prefix, but I have to type the command to be called...
(global-set-key (kbd "C-c m g")
                (lambda () (interactive)
                  (execute-extended-command t)))

В документации сказано, что execute-extended-command использует command-execute для выполнения команды, прочитанной из минибуфера, но я не смог заставить это работать:

;; doesn't call with prefix...
(global-set-key (kbd "C-c m g")
                (lambda () (interactive)
                  (command-execute 'grep t [t] t)))

Есть ли способ вызвать функцию с префиксом, но не интерактивно ?

36
задан mgalgs 27 May 2011 в 18:30
поделиться