Я работаю над несколькими проектами прямо сейчас. Я хочу, чтобы один экземпляр Emacs обрабатывал их все. То, что я хочу, это поведение, подобное tmux, где каждое «окно» (в смысле Emacs) соответствует проектам, которые содержат буферы файлов, связанных с этим проектом. Есть несколько окон, каждое из которых соответствует проекту, и я должен иметь возможность переключаться между ними (что-то похожее на C-b w
)
Эта функция уже присутствует в той или иной форме? Я думаю, это будет круто, так как есть и другие варианты:
- Есть несколько открытых экземпляров Emacs.
- Имейте все файлы всех проектов в единственном экземпляре, который делает переключение буферов болью.
ace-jump-mode
, само по себе, отличное решение для быстрого перехода с курсором в буфер (если у вас его еще нет).frame-bufs
. См. Также Как перехватить файл перед его открытием и решить, какой кадр - stackoverflow.com/questions/18346785/… - отображать буфер в целевом кадре, и его можно использоватьframe-buffs--add-buffer
совместно, чтобы связать кадр. Вы можете вступать в бракframe-bufs
сtabbar
и ассоциировать / удалить буфера динамически: emacs.stackexchange.com/a/10112/2287frame-bufs
связывание буферов с определенным фреймом: github.com/alpaker/Frame-Bufs/blob/master/frame-bufs.elОтветы:
Вы можете использовать перспективу для управления проектами. Из его README:
Существует также другая версия persp-mode , немного отличающаяся от оригинальной. Перспективы распределяются между кадрами, а состояния могут быть сохранены на диск.
Если вы используете снаряд , существует также перспективная интеграция .
источник
Вы можете попробовать режим бровей , который управляет несколькими (возможно, сложными) макетами окон. Вы можете переключаться между конфигурациями окон с помощью клавиш, таких как
C-c C-w 1
иC-c C-w 2
.источник
«Баскетбольное» решение может использоваться
C-x r w
для записи текущего состояния окна иC-x r j
возврата к более раннему.источник
Я использую комбинацию из пары разных пакетов.
Самое главное, я использую Projectile для работы над «проектом» и файлами нечеткого поиска. Я использую несколько кадров, по одному для каждого проекта, над которым я сейчас работаю. Вам действительно нужно знать
C-x 5 2
иC-x 5 0
создавать / уничтожать фреймы. Для управления переключением между проектами и для сохранения состояния конфигурации / разделения окон я использую рабочие группы для окон (для emacs) .Мне нравится эта настройка, потому что я могу потенциально поменять один пакет на другой.
источник