В emacs чаще, чем мне нравится, я получаю 4 или более окон.
Я буду использовать этот пример:
+--------|-----------+
| | |
| 1 | 2 |
| | |
+--------+-----------+
| 3 | 4 |
| +-----------+
| | 5 |
+--------+-----------+
Многие функции могут выполнять действия в other-window
(обычно это же окно, на которое указывает C-x o
). Особенно полезны такие scroll-other-window
. Однако, когда открыто 4 или более окон, other window
вряд ли будет то, что я хочу.
Есть ли простой способ управлять набором other-window
без изменения макета окна / буфера? Конечно, это выполнимо с помощью кучи C-x 4 b
и , C-b
но я не хочу , чтобы изменить расположение. Например:
- Если редактировать в окне 4 на картинке выше, есть ли простой способ настроить
C-M-v
прокрутку окна 1 ? - Или просто предположим, что фокус на окне 3 , как установить,
other-window
чтобы указать на окно 2 ?
M-1 M-2 ..
выбрать окно № 1, 2, используяwindow-number
пакетИз быстрого обзора источника
other-window
это выглядит так, как будто оно на самом деле зависит от возвращаемого окнаnext-window
, которое определено в c. К сожалениюscroll-other-window
, также определен в c, и, вероятно, вызывает оттуда следующее окно. Я не думаю, что это легко переопределить.Тем не менее,
switch-to-buffer-other-window
кажется, использоватьpop-to-buffer
, так что вам может повезти там.источник
Нет простого способа манипулировать списком окон, поэтому возвращаемый результат
other-window
более или менее фиксирован. Это само по себе неплохо, так как обеспечивает согласованность при навигации по окнам. Что касается двух сценариев, которые вы описали, с некоторыми elisp или макросами вы можете удовлетворить свой рабочий процесс.Вы можете использовать простой фрагмент, подобный приведенному ниже, чтобы использовать
other-window
соответствующее количество раз, прокрутить вниз и вернуться к исходному окну.Вы можете передать префиксный аргумент, чтобы указать, какое окно прокручивать. Как вы можете сделать вывод, он использует встроенный механизм,
other-window
чтобы пропуститьarg
количество окон перед прокруткой.save-selected-window
Гарантирует фокус возвращается к исходному окну. Документацияother-window
может предоставить дополнительную информацию об изменении этого фрагмента в соответствии с вашим поведением.Снова используйте
prefix-arg
какC-3 C-x o
при звонкеother-window
. Фактическое количество для предоставления зависит от порядка их разделения и не изменится, если вы не создадите новые окна. Кроме того, вы можете использовать удобные пакеты, такие какwindow-number
илиace-window
из MELPA, для быстрого переключения выбранных окон.источник
<f7> n
для прокрутки n-го окна. Создайте временные привязки клавиш с помощью макросов клавиатуры.