Одно окно на проект

9

Я работаю над несколькими проектами прямо сейчас. Я хочу, чтобы один экземпляр Emacs обрабатывал их все. То, что я хочу, это поведение, подобное tmux, где каждое «окно» (в смысле Emacs) соответствует проектам, которые содержат буферы файлов, связанных с этим проектом. Есть несколько окон, каждое из которых соответствует проекту, и я должен иметь возможность переключаться между ними (что-то похожее на C-b w)

Эта функция уже присутствует в той или иной форме? Я думаю, это будет круто, так как есть и другие варианты:

  • Есть несколько открытых экземпляров Emacs.
  • Имейте все файлы всех проектов в единственном экземпляре, который делает переключение буферов болью.
sudeepdino008
источник
2
Для управления проектами вы пробовали перспективу ?
cutejumper
Попробуйте этот пост в блоге о Emacs как о расширенном терминальном мультиплексоре : вы получите поведение, подобное Tmux. Я просто наткнулся на это, заставил это работать, и это делает то, что это рекламирует. Сверху вы получите ace-jump-mode, само по себе, отличное решение для быстрого перехода с курсором в буфер (если у вас его еще нет).
Если вы готовы потратить некоторое время начальной настройки, чтобы определить условия для проектов, вы можете выделить их по одному кадру и использовать frame-bufs. См. Также Как перехватить файл перед его открытием и решить, какой кадр - stackoverflow.com/questions/18346785/… - отображать буфер в целевом кадре, и его можно использовать frame-buffs--add-bufferсовместно, чтобы связать кадр. Вы можете вступать в брак frame-bufsс tabbarи ассоциировать / удалить буфера динамически: emacs.stackexchange.com/a/10112/2287
lawlist
Вот ссылка на frame-bufsсвязывание буферов с определенным фреймом: github.com/alpaker/Frame-Bufs/blob/master/frame-bufs.el
lawlist
@cutejumper Перспектива идеальна. Вы можете написать это как ответ, чтобы я мог поставить галочку правильно.
sudeepdino008

Ответы:

7

Вы можете использовать перспективу для управления проектами. Из его README:

pective.el предоставляет несколько рабочих пространств (или «перспектив») для каждого фрейма Emacs. Это позволяет легко работать над многими отдельными проектами, не теряясь во всех буферах.

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

Существует также другая версия persp-mode , немного отличающаяся от оригинальной. Перспективы распределяются между кадрами, а состояния могут быть сохранены на диск.

Если вы используете снаряд , существует также перспективная интеграция .

cutejumper
источник
5

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

Эрик Браун
источник
1
Eyebrowse разделяет буфер между рабочими пространствами. Это может быть нежелательно
sudeepdino008
2

«Баскетбольное» решение может использоваться C-x r wдля записи текущего состояния окна и C-x r jвозврата к более раннему.

Стефан
источник
2

Я использую комбинацию из пары разных пакетов.

Самое главное, я использую Projectile для работы над «проектом» и файлами нечеткого поиска. Я использую несколько кадров, по одному для каждого проекта, над которым я сейчас работаю. Вам действительно нужно знать C-x 5 2и C-x 5 0создавать / уничтожать фреймы. Для управления переключением между проектами и для сохранения состояния конфигурации / разделения окон я использую рабочие группы для окон (для emacs) .

Мне нравится эта настройка, потому что я могу потенциально поменять один пакет на другой.

Майк Николс
источник