Emacs. Пакет otpp
2025-02-03
·
2 мин. для прочтения
Emacs. Пакет otpp.
Содержание
1 Общая информация
- Автоматическое создание вкладки для каждого проекта, обеспечивающее управление рабочим пространством на основе панели вкладок для Emacs.
- Репозиторий: https://github.com/abougouffa/one-tab-per-project
2 Базовое использование
- При переходе на проект
project-switch-project(C-x p p) создаётся вкладка с именем проекта. - Когда вы закрываете проект со всеми его буферами с
project-kill-buffers, вкладка тоже закрывается.- Допустим, вы перешли на проект
/home/user/project1/backend/,otppсоздаст вкладку с именемbackendдля этого конкретного проекта. - Теперь вы открыли второй проект
/home/user/project2/backend/,otppобнаружит, что название у проекта (backend) такое же, как у ранее открытого, но у него другой путь. - В этом случае,
otppсоздаст вкладку с именемbackend[project2]и переименует ранее открытую вкладку вbackend[project1].
- Допустим, вы перешли на проект
- Для некоторых случаев вам может потребоваться прикрепить вкладку вручную (
tab-bar-new-tab) для открытого проекта, чтобы у вас было две вкладки, для одного и тот же проект.- В этом случай, вы можете вызвать команду
otpp-change-tab-root-dirи выберите каталог проекта.
- В этом случай, вы можете вызвать команду
- Когда вы используете команды для перехода к файлу (
find-file,xref-find-definitionsи т. д.), вы можете получить буфер, принадлежащий другому проект (допустимB), но этот буфер будет отображаться во вкладке текущего проекта (A).- В этом случае вы можете вызвать команду
otpp-detach-buffer-to-tab.
- В этом случае вы можете вызвать команду
3 Расширенное использование
- Предположим, что вы используете
otpp-modeи вызываете командуproject-switch-projectчтобы открыть проектXв новой вкладкеX. - Запускаете поиск файла
M-x find-file. - Открываете файл
test.cppвне текущегоXпроект. - Теперь, если вы запустите
project-find-file, вы будете в одной из двух ситуаций:- Если
test.cppявляется частью другого проектаY,project-find-fileвыдаст список файлов проектаY, даже если вы находитесь на вкладкеX. - Если
test.cppне является частью какого-либо проекта,project-find-fileбудет подсказывать, что сначала вы должны выбрать проект, а затем выбрать файл.
- Если
- Для этого
otppпредлагает функциюotpp-prefix(C-x t P). - Когда вы вызываете
otpp-prefix, а затемC-x p f, вам будет предложен файл из проекта текущей вкладки.