如何临时禁用一个global minor mode

pyim 的 pyim-isearch-mode 是一个 global minor mode,我发现如果 pyim-isearch-mode 启用了,那么用 pdf-tools 打开的pdf文档 就会无法用 isearch 搜索, 所以我想在 pdf-view-mode 里面临时关闭 pyim-isearch-mode, 而其他的mode 不受影响,不知道要怎么实现

采用了一个曲线救国的方法 添加一个 isearh-hook ,判断当前 major mode 是否为 pdf-view-mode, 如果是则关闭 pyim-isearch-mode 否则启用 pyim-isearch-mode

   (add-hook 'isearch-mode-hook
            (lambda ()
              (when (and (boundp 'pdf-isearch-minor-mode)
                         (boundp 'pyim-isearch-mode))
                (if (equal major-mode 'pdf-view-mode)
                    (pyim-isearch-mode -1)
                  (pyim-isearch-mode 1)))))

最好用 (unwind-protect BODYFORM UNWINDFORMS...) 保护起来,否则中间出错状态就乱了。

3 个赞