Emacs сессия / проекты / управление окнами
Я работаю с проектами Ruby on Rails большую часть времени, поэтому мне нужен способ сохранить проекты и состояние буферов / окон, над которыми я работаю, в основном потому, что я часто переключаюсь на другой проект на несколько минут, а затем возвращаясь к проекту, над которым я работал. Desktop.el, кажется, очень близко, за исключением сохранения конфигурации окна.
Для тех, кто знаком с TextMate, я ищу что-то вроде файлов проекта textmate, которые вы можете открыть, и они открывают другой экземпляр редактора, который открывает только файлы в этом проекте.
Спасибо цезарь
6 ответов
Мне нравится конфигурация окна для регистрации (C-x r w <register_name>
) для ситуаций, похожих на то, что вы описываете. Как только вы сохраните конфигурацию окна в регистр, это просто C-x r j <register_name>
чтобы вернуться к сохраненной конфигурации.
Я пытался поставить себя на место и наколдовать моё предпочтительное решение Emacs. Лучшее, что я могу придумать, это то, что я иногда попадаю в режим, в котором я не хочу, чтобы мои окна были испорчены, имея дело с прерыванием Emacs, которое требует различных ресурсов Emacs (буферов / окон). Скажем, у меня, например, идет эдиф, и я хочу перейти к пустому буферу, чтобы проверить идею, не изменяя мою точку зрения эдифа, чтобы позаимствовать идею Eclipse. В таком случае я вообще делаю C-x 5 2
поднять новый кадр. Если у меня уже есть несколько кадров на мониторе, я сделаю C-x 5 f
выбрать именованный кадр.
В вашем случае у вас может быть один набор кадров с префиксом proj-x, а другой - с префиксом proj-y. В этом случае C-x f proj-x-foo
обеспечивает быстрое переключение для обработки вашего прерывания C-x f proj-y-fee
переключает вас обратно. В большинстве случаев, я думаю, вы говорите о двух кадрах, что еще проще: C-x f o
переключаться между двумя кадрами.
Я думаю, что главное - это то, что с Emacs можно "отбросить" то, что вы делаете, без необходимости что-либо закрывать, делать что-то еще, а затем возвращаться в исходную среду с небольшим суетой или беспорядком. Это следствие того, что в Emacs вы можете одновременно открывать сотни файлов, то есть вам не нужно закрывать файл, а затем открывать другой. Открой им все и получи мяч.:-) И когда вы принимаете этот стиль, C-x s
твой друг.
Может быть, вы пытаетесь заставить emacs работать как IDE, а это не так. У меня часто есть несколько проектов, открытых в emacs, и я никогда не закрываю emacs ни на несколько недель. Это одна из главных причин, по которой я попал на emacs много лет назад. В моем текущем проекте я переключаюсь между Java, Ruby и Lisp. Мне также нужны функции для редактирования jsp, erb, html и css, единственное, что я еще не разобрался, это javascript. Помимо способности полностью настраивать мою среду, это сила emacs.
Я все время использую ECB, и, как правило, когда я перемещаюсь по файлам, это следует за мной, я работаю не с точки зрения "окон", а с точки зрения "Я здесь". Определенный буфер, открытый или нет, на самом деле не важен. Я также использую IDO, поэтому переключение буферов действительно просто и интуитивно понятно. У меня обычно отображается максимум два буфера (но потенциально много открытых). MX s также полезен для гарантии того, что вы сохранили, поскольку он перечислит все несохраненные буферы и сообщит вам о них.
Когда мне действительно нужно закрыть emacs, я обычно очень быстро возвращаюсь туда, где находился, перейдя в эту папку и набрав emacs app/controllers/my_controller.rb. Оттуда навигация рельсов очень полезна. M-Shift-стрелка вниз, и мы уходим...
http://www.emacswiki.org/emacs/WindowsMode - Сохраняет и восстанавливает конфигурацию окна.
Эпроект имеет eproject-open-all-project-files
, который обеспечивает открытие всех файлов в текущем проекте (или вызывает его с префиксом arg для выбора произвольного проекта) и eproject-kill-project-buffers
который закрывает все файлы в текущем проекте. Это позволяет вам легко начать работу с проектом и очистить, когда вы закончите.