#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, но я еще не использовал этот пакет. Поэтому я не могу сказать, сохраняет ли он также конфигурацию окна рабочих пространств.