emacs elisp(其他-window 0)

emacs elisp (other-window 0)

我尝试编写一个 hydra 函数来切换 windows。 基本上我希望 C-x o 带我到另一个 window,然后 "o" 将循环遍历所有 windows。所以我输入了 .emacs

(global-set-key
   (kbd "C-x o")
   (defhydra hydra-other-window (:pre (other-window 1))
     "hydra other window"
     ("o" (other-window 1) "Next window")))

没用。 C-x o 确实带我去了另一个 window, 但是按 "o" 什么都不做。 但是,如果我将最后一行中的 1 更改为 0, 它按预期工作。这很令人惊讶,因为 根据文档, (other-window 0) 只会 select 在当前 window。对此有一个很好的解释吗? 任何帮助将不胜感激。

您可以使用更简单的代码:

(defhydra hydra-other-window (global-map "C-x")
  "hydra other window"
  ("o" (other-window 1) "Next window"))