1

C-xo перемещает вас к следующему окну в Emacs, как вы переходите к предыдущему окну?

Иногда у меня открыто до 10 окон, и было бы здорово двигаться в любом направлении.

Также есть ли способ перейти к определенному окну по номеру? (например, перейти к 3-му окну)

5 ответов5

3

Как насчет этого:

(defun other-window-backwards (count)
  (interactive "p")
  (other-window (- count)))

(global-set-key [(control meta prior)] 'other-window-backwards)
(global-set-key [(control meta next)]  'other-window)

Затем используйте CM-prior (Page Up) для перехода к предыдущему окну, CM-next (Page Down). Вкусовые привязки подойдут!

1

Вы можете дать команде Cx o аргумент -1, например: Cu -1 Cx o

Это приведет вас к предыдущему окну

Также, чтобы вернуть 3 окна, используйте: Cu -3 Cx o

1

ты имеешь ввиду буферы ?? если так, то есть функции next-buffer и previos-buffer которые выполняют Switch to the next/previous buffer in cyclic order .

Изменить: с губкой ответ. Я использую windmove для переключения окон.

(windmove-default-keybindings) ;; Shift+direction  
(global-set-key (kbd "C-x O") (lambda () (interactive) (other-window -1))) ;; back one
(global-set-key (kbd "C-x C-o") (lambda () (interactive) (other-window 2))) ;; forward two
1

У меня есть эти строки в моем init.el:

;; Use shift key to move between various split windows

(when (fboundp 'windmove-default-keybindings)
(windmove-default-keybindings))

Это помогает мне перемещаться между различными разделенными окнами с помощью клавиш Shift+ стрелка.

0

Барт (и другие) дали правильные ответы на ваш точный вопрос. Вы также можете посмотреть на windmove который должен был быть упакован в последнюю версию Emacsen.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .