Как переключаться между видимыми буферами в Emacs? - PullRequest
51 голосов
/ 12 января 2011

Если я нахожусь в режиме разделения экрана на 2 разных буферах в Emacs и курсор находится на верхнем буфере, как быстро переместить курсор на нижний буфер?

Дополнительный вопрос: если я знаюкоманда, есть ли простой способ определить, с какой комбинацией клавиш она связана, если таковая имеется?

Ответы [ 5 ]

68 голосов
/ 12 января 2011

Для переключения на другой буфер используйте: C-x o.

Опишите ключ: C-h k.

27 голосов
/ 30 декабря 2013

Вот лучшее решение, когда вы открываете более двух окон (буферов) в одном кадре:

(global-set-key (kbd "C-x <up>") 'windmove-up)
(global-set-key (kbd "C-x <down>") 'windmove-down)
(global-set-key (kbd "C-x <left>") 'windmove-left)
(global-set-key (kbd "C-x <right>") 'windmove-right)

Теперь вы можете использовать C-x UP/DOWN/LEFT/RIGHT, чтобы перейти к указанному выше буферу / nether / left / right, когда у вас есть три или более в одном кадре, они более точны, чем 'other-window, и вам не нужно устанавливать какие-либо пакет.

Вы даже МОЖЕТЕ сделать это для циклического перемещения буферов в направлении (vertically/horizontally) с помощью одного из вышеупомянутых ярлыков с конфигурацией в файле .emacs / init.el, но я не рекомендую это (кроме того, я этого не делаю помни это больше, можешь гуглить, если хочешь).

Конечно, вы можете использовать другие ярлыки, кроме тех, которые я использую в моем .emacs.

9 голосов
/ 13 января 2011

Вас также может заинтересовать WindMove , который позволяет осуществлять «направленную» навигацию по окнам с помощью , и т. Д.

8 голосов
/ 12 января 2011

Что касается вопроса о бонусе, если вы знаете команду (other-window) и вызываете ее с помощью Mx other-window , Emacs покажет в минибуфере краткое сообщение о том, что «вы можно запустить команду "other-window" с помощью Cx n ".

Существует также M-x where-is , который запрашивает команду и дает вам текущие привязки, которые приводят к этой команде (если есть).

Существует учебник, который поставляется с Emacs. На самом деле в нем есть ответ на ваш вопрос (см. Раздел MULTIPLE WINDOWS примерно на 80% в учебнике). Доступ к учебнику можно получить через C-h t или M-x help-with-tutorial . На начальной заставке Emacs также есть ссылка на руководство. Справа от ссылки на учебное пособие есть ссылка на онлайновую экскурсию по Emacs . В этом руководстве вы познакомитесь с основными командами редактирования / перемещения, экскурсия - это скорее введение в то, что может предложить Emacs.

1 голос
/ 20 августа 2011

Если вы хотите перемещаться среди только тех буферов, которые отображаются в данный момент, то вы действительно хотите перемещаться между окнами, в которых они отображаются. Это дает вам возможность сделать это, используя имена окон / фреймов, которые совпадают с буферы:

См. Лучшая навигация по окну в Emacs?

...