[英]Invoking Imenu from a key
目前emacs有一些有用的imenu
東西,它允許我查看當前緩沖區中的函數列表。 為了實現這一點,我需要鍵入Mx
,然后鍵入imenu
,然后按return
鍵,然后它將在迷你緩沖區“索引項目:”中顯示提示,我需要輸入func
,然后它顯示另一個迷你緩沖區提示符,其中包含當前所有函數的完成緩沖。 這是非常好的和有用的,但現在我想減少打字的數量,並在某種程度上以序列的第一部分宏觀化。 我試過這種方法:
(defun my-imenu-go-function-list ()
(interactive)
(imenu "func"))
(global-set-key (kbd "C-x C-o") 'my-imenu-go-function-list)
另一個嘗試:
(defun my-imenu-go-function-list ()
(interactive)
(imenu)
(execute-kbd-macro [?f ?u ?n ?c return]))
但沒有一個有效,還有其他可能嗎?
sebs的回答顯示了一個我以前從未見過的非常巧妙的技巧; 但是以下內容會更直接:
(imenu (assoc "func" (imenu--make-index-alist)))
它確實依賴於私有(按慣例)功能,所以YMMV。 我看不到用於返回此alist值的明顯API。
您需要以交互方式調用您的函數。
請嘗試以下方法。 它應該工作。
更新:
(defun my-imenu-go-function-list ()
(interactive)
(let ((unread-command-events (listify-key-sequence "func\n") ))
(call-interactively 'imenu)))
如果您在Windows中,則可能必須將回車符更改為“\\ r \\ n”或“\\ r \\ n”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.