8 votes

fonction interactive emacs avec préfixe numérique optionnel

Comment puis-je spécifier une fonction qui a un préfixe numérique optionnel, sinon, elle demande un nombre ? En gros, comment se comporte goto-line ?

(defun my-function(&optional  n)
  ; I have tried
  (interactive "N") ; reads string, no prompt
  (interactive "p") ; defaults to one
  (interactive (if (not n) (read-number "N: "))) ; runtime error

alors comment faire pour que ça marche ? Merci

9voto

Trey Jackson Points 49816

Regardez comment 'goto-line est défini ( M-x find-function goto-line RET ).

(defun my-function (n)
  "Example function taking a prefix arg, or reading a number if no prefix arg"
  (interactive
   (if (and current-prefix-arg (not (consp current-prefix-arg)))
       (list (prefix-numeric-value current-prefix-arg))
     (list (read-number "N: ")))))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X