установка пакетов в emacs
Несколько ссылок по теме.
- package.el - встроенное.
- paradox - красивая замена package-list-packages, не использую.
- https://github.com/jwiegley/use-package - полезная конфигурялка пакетов.
- https://gitlab.com/jabranham/system-packages - интересная штука про управление пакетами системы. С этим умеет дружить use-package. Однако, emacs всё ближе к «центру управления всем». :)
- https://github.com/quelpa/quelpa - You can build and install packages from (fetcher names in parens): Git (git), GitHub (github), Bazaar (bzr), Mercurial (hg), Subversion (svn), CVS (cvs), Darcs (darcs), Fossil (fossil) and EmacsWiki (wiki). Прям очень полезное добавление на случай, когда хочется чего-то нестандартного.
- https://github.com/melpa/melpa - MELPA is a growing collection of package.el-compatible Emacs Lisp packages built automatically on our server from the upstream source code using simple recipes. https://melpa.org/#/getting-started - как начать пользоваться.
- https://github.com/melpa/melpa#recipe-format - в том числе, как писать рецепты для quelpa, которая выше.
- https://github.com/dimitri/el-get - El-Get allows you to install and manage elisp code for Emacs. It supports lots of different types of sources and is able to install them, update them and remove them, but more importantly it will init them for you. That means it will require the features you need, load the necessary files, set the Info paths so that C-h i shows the new documentation you now depend on, and finally call your own initialisation code for you to setup the extension. Or call it a package. El-Get supports package.el as one of its methods to fetch Emacs Lisp Extensions.
- https://github.com/raxod502/straight.el - альтернатива.
package-vc-install, например
(package-vc-install "https://github.com/clojure-emacs/clojure-ts-mode")
The command will try to infer the name of the package from the URL of the repository you’ve supplied. Upon closer inspection you’ll also notice that the command takes a few more parameters that allow you to specify the name of the package and a particular revision (commit) you want to use:
(package-vc-install PACKAGE &optional NAME REV BACKEND)
(https://emacsredux.com/blog/2023/03/12/install-a-package-from-a-vcs-repository/)
use-package
- https://github.com/jwiegley/use-package
- https://github.com/quelpa/quelpa-use-package - как их договорить.
Минимальное объявление пакета
(use-package foo)
Загрузит пакет, если пакет есть в системе. Если нет - маякнет в *Messages*
.
- :init - чтобы выполнить что-то до загрузки пакета
- :config – чтобы выполнить после загрузки пакета
- :autoload
- :bind – например
(("M-o l" . highlight-lines-matching-regexp)("M-o r" . highlight-regexp)("M-o w" . highlight-phrase))
- можно ремаппить https://www.gnu.org/software/emacs/manual/html_node/elisp/Remapping-Commands.html Ну, и вообще смкнопочки емакса
- :bind-keymap - например,
:bind-keymap ("C-c p" . projectile-command-map)
- :commands
- https://habr.com/ru/articles/826232/, комменты тоже интересны.
- https://protesilaos.com/codelog/2024-07-23-emacs-use-package-essentials/ – всяких рецептов.