2014-02-15 45 views
0

返回另一個Emacs問題。我試圖讓我的包添加一個菜單,但我遇到了一些問題。Emacs:從列表中的項目生成菜單

我有一個帶字符串的列表,我爲這個列表中的每個項目添加一個條目,調用一個函數,將字符串作爲參數。現在的問題是我無法對此菜單進行硬編碼,因爲列表應該由用戶編輯。

我的線沿線的思考的東西:

(dolist (item my-list) 
    (define-key global-map [menu-bar my-menu item] 
       (cons item `(lambda() (interactive) (my-function ,item))))) 

現在的問題是,我只能得到一個菜單項,在<menu-bar> <my-menu> <item>。我如何使用[menu-bar my-menu item]中變量「item」的值而不是文本字符串「item」?

此外,在這樣的缺點拉姆達的作品,但我不是很滿意 - 有沒有更好的方式來做到這一點?

回答

1

回答你的第一個問題:

(dolist (item my-list) 
    (define-key global-map (vector 'menu-bar 'my-menu item) 
       (cons item `(lambda() (interactive) (my-function ,item))))) 
+0

或者你可以使用'\'[菜單欄我的菜單,項目]'。 – Stefan

+0

是的,這是內部庫中經常使用的替代方法。 – Tobias