首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在选择窗口时做一些事情

在选择窗口时做一些事情
EN

Stack Overflow用户
提问于 2014-01-05 14:32:36
回答 2查看 468关注 0票数 3

我一直在通过可用钩子查看,但当你切换窗口时,它们中似乎没有一个在开火。

我要做的是,为所选窗口激活一个次要模式:

代码语言:javascript
复制
(defvar active-window (frame-selected-window))

(defun active-window-switch (&rest _)
  (when active-window
    (with-selected-window active-window
      (active-window-mode nil)))
  (setq active-window (frame-selected-window))
  (active-window-mode t))

(define-minor-mode active-window-mode
  "Minor mode to distinguish the selected window."
  :global nil :group 'active-window :init-value nil :lighter " Active")

(add-hook 'window-configuration-change-hook #'active-window-switch)

(provide 'active-window)

我可以用什么钩子或函数来代替window-configuration-change-hook (只在我创建或退出窗口时触发)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-05 17:10:29

select-window是在许多情况下在内部使用的操作,可能在单个命令中使用数千次。实际上,您并不总是关心所选窗口,但只在不运行命令时才关心。因此,更好的地方钩自己是在post-command-hook

票数 2
EN

Stack Overflow用户

发布于 2014-01-05 16:44:37

您可以尝试建议选择窗口:

代码语言:javascript
复制
(defadvice select-window (after select-window-and-do-stuff activate) 
    (do-stuff))

或者,如果您想在窗口中取消设置,您首先要离开:

代码语言:javascript
复制
(defadvice select-window (around select-window-and-do-stuff activate)
    (undo-stuff)
    ad-do-it 
    (do-stuff))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20934770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档