2015-12-07 2 views
2

Я пытаюсь написать функцию гидры для переключения окон. В принципе, я хочу, чтобы C-x o перенес меня в другое окно, а затем «o» будет циклически проходить через все окна. Поэтому я положил .emacsemacs elisp (другое окно 0)

(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 переносит меня в другое окно, , но нажмите «o» ничего не делает. Однако, если я изменяю 1 в последней строке до 0, , она работает как ожидалось. Это довольно удивительно, потому что согласно документации, (другое окно 0) будет только в текущем окне. Есть ли хорошее объяснение этому? Любая помощь будет оценена по достоинству.

ответ

2

Вы можете использовать более простой код:

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

Волю C-х 2 и т.д. работы, как обычно после модификации? – user3208

+0

Конечно, нет причин для 'C-x 2' не работать. –

+0

Я проверил ваш код. Он отлично работает! Большое спасибо. У вас есть идея, почему в моем исходном коде второй «1» должен быть «0»? – user3208