GNU EMACS для технических писателей
285 subscribers
11 photos
19 files
87 links
Настройка, использование, хаки
Download Telegram
Однако, я не сказал про самое главное. За счёт чего Magit становится настолько удобным, что дальше просто некуда? За счёт... интеграции с Helm!
Именно он помогает мне в работе и подсказывает названия веток, на которые я хочу переключиться, ищет файлы в Projectile и многое другое.

🐘 Helm
🐘 Magit
🐘 Projectile

Три базированных слоняры, на которых держится моя продуктивность от работы в Emacs. Именно они помогают мне делать то, что я делаю, через несколько комбинаций клавиш.

Вы можете возразить, что Helm это не стильно / модно / молодёжно, и надо использовать Vertico / Ido / Ace / <что-то-другое.el>. Да, я душный консервативный скуф, но мне надо шоб работало, и работало так, как мне надо. В этом плане указанная связка меня полностью устраивает.

А ещё я использую пакеты из архивов GNU, MELPA Stable и NonGNU ELPA, а из MELPA только в том случае, когда другого выбора нет.

#magit #helm #projectile
5👍2
Помните про .dir-locals.el? Самые полезные переменные в этом файле — это настройки Projectile, специфичные для проекта. У меня сейчас в работе несколько проектов на Sphinx, и в .dir-locals.el я держу такое:

;;; Directory Local Variables
;;; For more information see (info "(emacs) Directory Variables")

((nil . ((buffer-env-script-name . ".venv/bin/activate")
(indent-tabs-mode . nil)
(projectile-project-compilation-cmd . "make dirhtml")
(projectile-project-run-cmd . "python3 -m http.server -a 127.0.0.1 -d build/dirhtml")
(projectile-project-src-dir . "source/")
(projectile-project-test-cmd . "pre-commit run --all")))

(eglot-mode . ((eglot-workspace-configuration . (:pylsp
(:plugins
(:plugins
(:jedi_completion
(:include_params t :fuzzy t)
:pylint
(:enabled :json-false))))))))
(makefile-mode . ((indent-tabs-mode . t)))
(python-mode . ((python-indent-offset . 4)
(fill-column . 120)
(tab-width . 4)))
(rst-mode . ((tab-width . 3))))


Обратите внимание на то, что настройки Projectile задаются не для projectile-mode, а глобально.

#projectile
👍4
Давайте расскажу, как я запускаю компиляцию Sphinx.

1. Вызываю projectile-compile-project с помощью [C-x p c]. Там у меня уже прописана команда make dirhtml. Как это сделать я писал раньше.
2. Жму [RET]. Открывается отдельное окно, в которое пишется вывод команды компиляции, в моём случае это make dirhtml.
3. Перехожу в это окно с помощью [C-x o] и спускаюсь в самый низ с помощью [M->] ([Alt+Shift+.]), чтобы видеть самые свежие строки.
4. Если вывод без ошибок — закрываю окно с помощью [C-x 5 0].
5. Если есть ошибки, то можно перейти к проблемному месту с помощью ссылки. Если ссылки нет, можно перейти к предполагаемому месту, открыв нужный файл с помощью projectile-find-file [C-x p f].
6. Делаю правки.
7. Можно повторно вызвать projectile-compile-command, а можно вернуться в буфер *compilation* и просто попросить Emacs обновить содержимое: нажать клавишу [g].

#projectile #sphinx
1