2011-12-19 2 views
3

В emacs C-x r f запоминает конфигурацию кадров в регистре. Как я могу это увидеть? M-x view-register не показывает. Я также хотел бы хранить различные конфигурации и повторно называть их так, как они мне нужны, во время сеансов emacs.Кадры Конфигурация Emacs

+0

Я ищу что-то вроде: M-x save-frame-configuration RET my-project-view-1. а затем M-x load-frame-configuration RET my-project-view-1. – aartist

ответ

2

С-хгJ связан с jump-to-register, и вы можете найти код, который нужно там. Вы можете использовать либо M-xfind-function, либо M-xfind-function-on-key чтобы удобно перейти к исходному коду.

Функция получает аргумент register, а затем вызывает (get-register register) для получения данных. Следующий код затем требует восстановления конфигурации фрейма или окна по мере необходимости.

Код "c" для interactive означает символ, поэтому аргумент register является просто символом. Поэтому вы можете использовать (get-register ?a) для получения регистра a.

(defun jump-to-register (register &optional delete) 
    (interactive "cJump to register: \nP") 
    (let ((val (get-register register))) 
    (cond 
    ;; [...] 
    ((and (consp val) (frame-configuration-p (car val))) 
     (set-frame-configuration (car val) (not delete)) 
     (goto-char (cadr val))) 
    ((and (consp val) (window-configuration-p (car val))) 
     (set-window-configuration (car val)) 
     (goto-char (cadr val))) 
    ;; [...] 
    ))) 
+0

Регистры не сохраняются в сеансах Emacs, поэтому на самом деле это не отвечает на запрос. – Drew

+0

Вопрос был: Как получить конфигурацию окна из реестра? Я считаю, что арартист затем намерен использовать эту информацию для реализации персистентности на всех сеансах, но не было никакого запроса на помощь в этом. – phils

+0

Подходите к себе, но арт-арт уже ответил на choroba перед вашим сообщением, что (а) он знал, как восстановить конфигурацию фрейма из регистра в течение того же сеанса и что (b) он искал, как это сделать через сессий. Вот почему я оставил комментарий. – Drew

0

Цитирование документации:

Используйте С-х г J R восстановить конфигурацию окна или фрейма. Это та же самая команда, которая используется для восстановления позиции курсора. Когда вы восстанавливаете конфигурацию кадра, все существующие кадры, не включенные в конфигурацию , становятся невидимыми. Если вы хотите удалить эти кадры вместо , используйте C-u C-x r j R.

(Где R обозначает регистр.)

+0

Я ищу конфигурацию в именах/номерах. Я знаю, как восстановить их в течение сеанса. Мне нравится сохранять их через сеансы emacs. – aartist

+0

А, я вижу. 'desktop-save', то? – choroba

0

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

Я считаю, что есть, однако, некоторые библиотеки, которые позволяют сохранять конфигурацию окна или кадра настойчиво (а затем восстановить его). Например, вы можете попробовать Lennart Borgman's winsav.el. Я знаю, что пару лет назад он работал над этой функцией - не знаю, какой статус сейчас. Если это сработает, вы также можете занести в закладки постоянные конфигурации фреймов.

1

Библиотека winsav.el жива, но новая версия находится на Launchpad как часть nXhtml. Самый простой способ получить winsav и настроить его - это просто загрузить весь nXhtml и установить его. (Если вы хотите, чтобы загрузить быстро, то просто байт компилировать весь nXhtml - из меню nXhtml.)

Если вы по какой-то причине считают, что лучше просто winsav.el то в UTIL подкаталоге:

http://bazaar.launchpad.net/~nxhtml/nxhtml/main/files/head:/util/

(Обратите внимание, что файлы почтового индекса для загрузки nXhtml немного стары. на самом деле все, что в моих страницах Emacs немного старые в данный момент. для некоторых частей nXhtml, что я обновляю сейчас и потом за исключением. и источники для EmacsW32 - которые не обновлены, но включают человека.

+0

Winsav делает хорошую работу. Тем не менее, я ищу, чтобы сохранить различную конфигурацию для разных регистров и сделать это постоянным на протяжении всего сеанса. Что-то вроде M-x call-frame-configuration my-project-view1 – aartist

Смежные вопросы