Максимизация / восстановление окна в emacs

#emacs #lisp #elisp

#emacs #lisp #elisp

Вопрос:

Хорошо, так что, возможно, это скорее вопрос к сайту суперпользователя, но я подумал, что в stackoverflow будет намного больше пользователей emacs.

В принципе, я часто разделяю свой emacs примерно на 4 окна, чтобы я мог одновременно просматривать кучу буферов.. однако я хотел бы иметь возможность C-x 1 (сделать окно того же размера, что и emacs), а затем каким-то образом восстановить мой хороший макет из 4 окон, на который я только что смотрел.

Есть ли простой способ сделать это или мне нужен какой-нибудь elisp / lisp (примечание: я не знаю НИКАКОГО elisp.)

Спасибо! Джон.

Комментарии:

1. Примечание: когда я говорю «окно», я имею в виду «панель» в emacs. Также обратите внимание, что я использую emacs в Ubuntu под X.

Ответ №1:

Попробуйте режим победителя.

При включенном режиме победителя вы можете восстановить предыдущую конфигурацию окна с C-c<left>помощью .

Вы можете вводить его повторно, чтобы вернуться к истории конфигурации окна, так что вы в безопасности, даже если было несколько промежуточных изменений.

C-c<right> возвращает вас (напрямую) к самой последней конфигурации.

Комментарии:

1. На месте, тоже красиво и просто 🙂

Ответ №2:

Я уверен, что для этого есть несколько разных решений, но я использую:

C-x r w x чтобы сохранить конфигурацию окна и C-x r j xвосстановить ее, где xимя регистра для его сохранения.

Затем мне также нравится режим победителя, который позволяет возвращаться к предыдущим конфигурациям окон с winner-undo помощью and winner-redo (к которым я привязан C-^и C-c ^потому, что я терпеть не могу привязки C-c <left>и C-c <right>которые установлены по умолчанию).

Ответ №3:

(winner-mode 1) это мое предпочтительное общее решение (и я бы настоятельно рекомендовал всем, кто еще не использует его, немедленно добавить его в свой файл инициализации), но также стоит отметить, что для этого конкретного вопроса (максимизация одного окна и затем возврат к предыдущей конфигурации) простое создание нового фрейма работает очень хорошо.

  • C-x52 для создания нового фрейма.
  • C-x50 чтобы удалить его и вернуться к исходному фрейму.

В терминале это полностью без проблем. В Emacs с графическим интерфейсом все в порядке, если ваши новые кадры автоматически отображаются в полноэкранном режиме (или как вы предпочитаете, чтобы они были), но не так хорошо, если вы меняете их размер вручную.

Ответ №4:

Вы также должны попробовать C-x 0 в окне, которое хотите закрыть, так как оно закроет это конкретное окно, но не любое другое. Я думаю, что большинство людей хотят этого большую часть времени, которое они используют C-x 1 .

Ответ №5:

http://www.emacswiki.org/emacs/frame-cmds.el

См. Раздел Команды maximize-frame и restore-frame (он же toggle-frame ). Существуют также команды maximize-frame-horizontally , maximize-frame-vertically , restore-frame-horizontally , и restore-frame-vertically .

Комментарии:

1. Хотя терминология в вопросе не очень понятна, я действительно полагаю из C-x 1 примера, что этот вопрос совсем не о фреймах.

2. Ой, извините — да, вы, несомненно, правы в этом. В этом случае уместен ответ о сохранении и восстановлении конфигурации окна.

Ответ №6:

Я использую escreen.el для управления несколькими рабочими пространствами, но в качестве побочного эффекта каждое рабочее пространство запоминает конфигурацию окна. Таким образом, вы можете найти его полезным пакетом.

Другие люди предлагают elscreen вместо escreen, но я еще не использовал этот пакет. Поэтому я не могу сказать, сохраняет ли он также конфигурацию окна рабочих пространств.