2010-03-04 35 views
12

Có cách nào để thêm hoàn thành của riêng tôi vào một hàm elisp (interactive) không? Lý tưởng nhất, tôi muốn vượt qua nó một danh sách các chuỗi mà nó sẽ tab-hoàn thành từ. Tôi biết rằng sử dụng (interactive "D"), (interactive "F") hoặc (interactive "b") cung cấp cho bạn hoàn thành cho các thư mục, tệp và tên đệm tương ứng, nhưng điều gì về đầu vào chung hơn?Thêm Hoàn thành (tương tác)

Trả lời

24

Đối số cho interactive không cần phải là chuỗi; nếu không, nó được đánh giá để có được danh sách các đối số để truyền cho hàm. Do đó, bạn có thể làm điều gì đó như sau:

(defun insert-foo-bar-or-baz (arg) 
    (interactive 
    (list 
    (completing-read "Choose one: " '("foo" "bar" "baz")))) 
    (insert arg)) 
+0

/facepalm Bây giờ tôi đã xem một ví dụ, nhận xét đó trong mục nhập 'M-x apropos' cho' tương tác 'có ý nghĩa hoàn hảo. – Inaimathi

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