2010-02-07 29 views
8

Làm cách nào để chỉ định một hàm có tiền tố số tùy chọn, nếu không, nó sẽ nhắc số? về cơ bản cách thức hoạt động của goto-line?hàm tương tác emacs với tiền tố số tùy chọn

(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 

vậy làm cách nào để tôi thực hiện công việc? cảm ơn

+1

FWIW, nếu bạn muốn lời nhắc "N", chỉ cần thêm văn bản nhắc sau N; '(tương tác" NType một số: ")'. – jrockway

Trả lời

9

Hãy xem cách 'goto-line được xác định (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: "))))) 
+2

+1. Sử dụng nguồn, Luke! – Bahbar

Các vấn đề liên quan