我還沒有能夠讓minibuffer-exit-hook
與read-string
配合使用。據我所知,在完成read-string
之後,我不應再在迷你緩衝器中。但是,條件(minibufferp)
表示即使read-string
完成,我仍處於小型緩衝區中。 read-string
是用C編寫的,所以我不能在那裏添加鉤子(即在read-string
函數的尾部)。 。如何使用帶字符串的小型緩衝區退出鉤
「文檔[小緩衝區退出掛機]:正常運行鉤剛剛之後,從迷你緩衝區
退出[思考多一點關於這個之後,我敢肯定這是一個錯誤 - 所以我提交了錯誤報告:BUG#16524正如我學到更多,我會更新這個線程
(defun test()
(interactive)
(read-string "Prompt: " "testing"))
(add-hook 'minibuffer-exit-hook (lambda()
(cond
((minibufferp)
(message "Focus is still in the minibuffer: %s" (buffer-name)))
(t (message "Contragulations -- focus is now in: %s." (buffer-name))))))
是的,謝謝你,你的建議確實解決了所有情況。我將我的模式設置合併爲一個函數,該函數現在將通過'post-command-hook'調用。有幾種情況下其它鉤也可以是有用的 - 例如,'改變-主要模式-hook'和'窗口配置改變-hook'。而且,由於在定位同一幀的相同窗口時沒有顯示緩衝區掛鉤,因此我添加了自己的掛鉤。 – lawlist