Emacs. Desire. Конфигурация
Конфигурация для пакета desire.
Содержание
1 Каталоги конфигурации
2 Установка переменных
3 Конфигурационные файлы
В файле
rc.packages.el
находится список используемых пакетов:;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; origami-fold-style: triple-braces; -*- ;;; rc.packages.el ;;; Commentary: ;; ;; File id ;; ;; Copyright (C) 2002-2024 Dmitry S. Kulyabov ;; Keywords: rc.packages ;; Author: Dmitry S. Kulyabov <yamadharma@gmail.com> ;; Maintainer: Dmitry S. Kulyabov <yamadharma@gmail.com> ;; ;; This code is free software in terms of GNU Gen. pub. Lic. v3 or later ;; ;; Description ;; ;; ;;; Change Log: ;;; Code: ;; (desire-old 'tiny) (desire-old 'personal) ;; ;; Mule ;; (desire-old 'mule) ;;(desire-old 'mule-fontset) ;; ---------------------------------------------------------------------- ;; ;;{{{ Xemacs (if (string-match "XEmacs" emacs-version) (desired 'xemacs)) ;;}}} ;;; Package {{{ ;;; Packaging (desire 'package) ;;; Build and install your Emacs Lisp packages on-the-fly and directly from source (desire 'quelpa) ;;; A declarative package management system with a command line interface ;; (desire 'straight) ;;; Auto update packages (desire 'auto-package-update) ;;;}}} ;; (desire 'esup) (desire-old 'site-stuff) ;;{{{ Window System (if (null window-system) () (progn (desire-old 'window-system) ; (desire-old 'faces) ; (desire-old 'multi-frame) ) ) ;; (if (null window-system) ;; () ;; (desire-old 'window-system) ;; ) ;; (desire-old 'window-system) ;; (desire-old 'test) ;; (if (eq window-system 'w32) ;; (progn ;; (desired 'window-system) ;; (desired 'window-system-w32) ;; ) ;; ) ;; (if (and window-system ;; (member window-system '(x gtk)) ;; (x-display-color-p) ;; ) ;; (progn ;; (desired 'window-system) ;; (desire-old 'faces) ;; (desire-old 'multi-frame) ;; ) ;; ) ;;}}} ;;{{{ Serve ;;; Gnuserv ;;(desire-old 'gnuserv nil "gnuserv") ;; Rely on dtemacs to do this, otherwise a race condition can cause ;; dtemacs to fail. ;; (gnuserv-start) ;;; Emacs daemon ;; (desire-old 'emacs-daemon) ;;; Emacs server (desire 'server) ;;}}} (desire 'general) (desire 'exec-path-from-shell) (desire 'compat) (desire 'async) ;; (desire 'gcmh) ;; ---------------------------------------------------------------------- ;;{{{ Session Management (desire 'savehist) ;;}}} (desire 'uniquify) (desire-old 'keys) (desire-old 'dialog) (desire-old 'mouse) ;; (desire 'xclip) (desire 'which-key) ;; (desire 'keycast) ;; ---------------------------------------------------------------------- (desire 'pcache) (desire 'persistent-soft) (desire 'alert) (desire 'rg :precondition-system-executable "rg")
В файле используется фолдинг по тройной скобке.
4 Конфигурация пакетов
4.1 Оформление интерфейса
- Файл
rc.packages.el
:;;; UI {{{ ;; (desire 'ligature) ;; (desire 'all-the-icons) (desire 'nerd-icons) ;; (desire 'mixed-pitch) (desire-old 'fontset) (desire-old 'font-lock) (desire-old 'font-lock-jit) ;; (desire-old 'font-lock-lazy) ;; (desire-old 'font-lock-fast) ;; (desire-old 'faces) ;; (desire-old 'color-theme nil "color-theme") ;; (desire-old 'fira-code-mode nil "fira-code-mode" t) ;; Simple minor mode for Fira Code ligatures (desire 'unicode-fonts) ;; (desire-old 'theme) ;; (desire-old 'modeline) ;; (desire 'zoom) ;; (desire 'centaur-tabs) (desire 'tab-bar) (desire 'tab-line) ;;;}}}
4.2 Поддержка LSP
4.2.1 Начало
- Файл
rc.packages.el
:;;; LSP mode {{{ (desired 'emacs-lsp-booster :precondition-system-executable "emacs-lsp-booster")
4.2.2 Eglog
- Файл
rc.packages.el
:(desire 'eglot)
4.2.3 Lsp-mode
- Файл
rc.packages.el
:;; (desire 'lsp-mode)
4.2.4 Конец
- Файл
rc.packages.el
:;;; }}}
4.3 Автодополнение
- Файл
rc.packages.el
:;;; Completion {{{ ;; (desire 'company) (desire 'corfu) ;;;}}}
4.4 Автодополнение в минибуфере
4.4.1 Начало
- Файл
rc.packages.el
:;;; Minibuffer completion {{{
4.4.2 Ido
- Файл
rc.packages.el
:;; (desire 'ido)
4.4.3 Helm
- Файл
rc.packages.el
:;; (desire 'helm-posframe) ;; (desire 'helm)
4.4.4 Ivy
- Файл
rc.packages.el
:;; (desire 'ivy)
4.4.5 Selectrum
- Файл
rc.packages.el
:;; (desire 'selectrum)
4.4.6 Vertico
- Файл
rc.packages.el
:(desire 'vertico)
4.4.7 Конец
- Файл
rc.packages.el
:;;;}}}
4.5 Общие настройки мод
4.6 Org-mode
4.7 Разное
- Файл
rc.packages.el
:;; (desire 'tree-sitter) (desire 'hydra) (desire 'bicycle) (desire 'hideshow) (desire-old 'show-paren) ;; (desire-old 'folding) ;; (desire-old 'outline) (desire 'origami) ;; (desire 'imenu) (desire 'ace-window) ;; (desire-old 'toolbar) ;; Parentesis (desire 'smartparens) ;;; Spell {{{ ;; (desire-old 'spell) (desire 'ispell) (desire 'flyspell) ;;(desire-old 'speck) ;;(desire-old 'wcheck) ;; (desire 'flycheck-languagetool) ;; (desire 'langtool) ;; (desire 'lsp-ltex :recipe '(:fetcher github :repo "emacs-languagetool/lsp-ltex" :branch "master" :files ("*.el"))) ;; (desire 'eglot-ltex :recipe '(:fetcher github :repo "emacs-languagetool/eglot-ltex" :branch "master" :files ("*.el"))) ;;;}}} ;;; Adress book {{{ (desired 'vcard) (desire 'khardel :precondition-system-executable "khard") (desire 'khalel :precondition-system-executable "khal") ;; (desire 'org-vcard) ;; (desire 'vdirel) ;; (desire 'bbdb) ;;;}}} ;;; Bibliography {{{ (desire 'biblio) (desire 'bibtex) ;;;}}} ;;; Projects {{{ ;; (desire 'project) (desire 'projectile) ;;;}}} ;;(desire-old 'yasnippet) ;;; Text {{{ (desire 'texfrag) ;; (desire 'adaptive-wrap) (desired 'visual-line-mode) ;; (desired 'prettify-symbols-mode) ;; (desire 'pretty-mode) ;; (desire 'prettify-math) ;; (desire 'math-preview) (desire 'pandoc-mode) (desire' mermaid-mode :precondition-system-executable "mmdc") (desire-old 'text) (desire-old 'markdown-mode nil "markdown-mode" t) (desire 'plantuml-mode) (desire 'pdf-tools) (desire 'nov) (desire 'fb2-reader) ;; (desire 'valign) ;;;}}} ;;; Time management {{{ (desire 'pomm) (desire 'org-pomodoro) ;; (desire 'hammy) ;;;}}} ;;; LaTeX {{{ ;; (desire 'xenops) ;; (desire 'lsp-latex :precondition-system-executable "texlab") (desire 'cdlatex) (desire-old 'xdvi nil "xdvi-search") (desired 'reftex) ;; (desire-old 'tex) (desired 'preview-latex) (desire 'auctex) ;; (desire 'auctex :initname "latex") ;; (desire 'auctex :initname "latex" :precondition-lisp-library "tex-site") ;;;}}} ;;; Org-mode {{{ ;; (desire 'org-ql) (desire 'org-appear) (desire 'org-fragtog) (desire 'org-custom-cookies) ;; (desire 'svg-tag-mode) (desire 'org-superstar) ;; (desire 'org-modern-indent :recipe '(:fetcher github :repo "jdtsmith/org-modern-indent" :branch "main" :files ("*.el"))) (desire 'org-modern) ;; (desire 'org-contacts) ;; (desire 'google-contacts) (desire 'org-edna) (desire 'org-ref) (desire 'org-tree-slide) ;;; Agenda (desire 'org-super-agenda) ;;(if (desiredp 'org-ql) ;; (desire 'org-agenda-files-track-ql) (desire 'org-agenda-files-track) ;;) ;;(if (desiredp 'org-ql) ;; (desire 'org-agenda-files-track-ql :recipe '(:fetcher github :repo "nicolas-graves/org-agenda-files-track" :branch "master" :files ("org-agenda-files-track-ql.el"))) ;; (desire 'org-agenda-files-track :recipe '(:fetcher github :repo "nicolas-graves/org-agenda-files-track" :branch "master" :files ("org-agenda-files-track.el"))) ;;) ;;; Literate (desire 'org-tanglesync) ;; (desire 'org-gcal) (desire 'org-journal) (desire 'org-noter) ;; (desire 'org-noter :recipe '(:fetcher github :repo "org-noter/org-noter" :branch "feature/org-roam-integration" :files ("*.el" "modules/*.el"))) (desire 'org-transclusion) (desire 'org-gtd) (desired 'mobileorg) (desire 'org) ;;; For messaging ;; (desire 'org-msg) ;;;}}} ;;; Org-roam {{{ (desire 'emacsql) ;; (desire 'delve :recipe '(:fetcher github :repo "publicimageltd/delve" :branch "main")) (desire 'zetteldesk) ;; (desire 'org-roam-server) ;; (desire 'org-roam-ui :recipe '(:host github :repo "org-roam/org-roam-ui" :files ("*.el" "out"))) ;; (desire 'org-roam-ui :recipe '(:fetcher github :repo "org-roam/org-roam-ui" :files ("*.el" "out"))) (desire 'org-roam-ui) (desire 'magit-section) (desire 'org-roam) ;;;}}} ;;; Notes {{{ (desire 'deft) ;; (desire-old 'zetteldeft nil "zetteldeft" t) (desire 'denote) ;;}}} ;; XML, XHTML, HTML {{{ ;;(desire-old 'nxml nil "rng-auto") ; (desire-old 'psgml) ;;;}}} ;;;{{{ Palm pilot support ;(desire-old 'palm) ;;;}}} ;;; Desktop {{{ ;; (desire-old 'desktop) (desire-old 'session nil "session") (desire-old 'saveplace nil "saveplace") (desire 'ibuffer) ;; (desire 'persp-mode) ;; (desire 'perspective) ;; (desire 'bufler) ;; (desire 'tabspaces) ;;}}} ;;; Appointments, diary, calendar {{{ ;; Use "M-x calendar RET" to display the calendar and start ;; appointment warnings. ;; (desire-old 'appt) (desire 'calendar) ;; (desire-old 'todo-mode) ;; (desire-old 'diary "diary-lib") ;;;}}} ;;; These provide options for the various message handling packages {{{ (desire 'browse-url) ;; (desire-old 'mailcrypt) ;; (desire 'supercite) ;;;}}} ;;; Message {{{ (desire 'smtpmail) ;; (desire 'gnus) (desire 'message) ;; (desire-old 'vm) ;; (desire 'wl :ensurename 'wanderlust) ;; (desire-old 'sendmail) ;; (desire 'mu4e-dashboard :recipe '(:fetcher github :repo "rougier/mu4e-dashboard")) (desire 'mu4e :precondition-system-executable "mu") ;;;}}} ;;; Programming {{{ (desire 'speedbar) ;; (desire-old 'semantic nil "semantic") ;; (desire-old 'cedet nil "cedet") ;; (desire-old 'ecb nil "ecb") ;; (desire-old 'php-mode nil "php-mode") ;; (desire-old 'eiffel-mode nil "eiffel-mode") (desire 'ebib) (desire 'lua-mode) ;;; Julia ;;; Code completion and syntax checking ;(desire 'eglot-jl) ;;; REPL integration (desire 'julia-snail) ;; (desire 'julia-repl) ;;; Syntax highlighting and latex symbols (desire 'julia-mode) (desire 'yaml-mode) (desire 'ini-mode) (desire 'hcl-mode) (desire 'magit-gitflow) (desire 'magit) ;;;}}} ;;; Blogs {{{ ;; (desire-old 'hexo nil "hexo") ;; (desire-old 'blog-admin nil "blog-admin") ;; Blog admin for emacs with hexo/org-page supported (desire-old 'easy-hugo nil "easy-hugo" t) ;; Emacs major mode for managing hugo ;;;}}} ;;; Miscellaneous {{{ (desire 'ebuku) (desire-old 'graphviz-dot-mode nil "graphviz-dot-mode") ;; (desire-old 'abbrev) ;; (desire-old 'bibtex) ;; (desire-old 'calc) ;; (desire-old 'eiffel-mode) ;; (desire-old 'filladapt) ;; (desire-old 'hugs-mode) ;; (desire-old 'html-helper-mode) ;; (desire-old 'lispdir) ;; (desire-old 'php-mode) ;; (desire-old 'ps-print) ;; (desire-old 'sh-script) ;; (desire-old 'shell) ;; (desire-old 'sql-mode) ;; (desire-old 'w3) (desire 'web-mode) (desire 'gnuplot) (desire 'pass) (desire 'multiple-cursors) (desire 'telega) (desire 'pocket-reader) ;;;}}} ;; (desire 'grammarly) ;; (desire 'flycheck-grammarly) (desire 'dashboard) ;; PERSONAL ;; (require 'chord-mode) ; edit guitar music. ;; (require 'discography) ; variant of BibTeX mode for discographies.
4.8 Программные режимы
4.8.1 Работа с CSV
Начало
- Файл
rc.packages.el
:;;; CSV files {{{
- Файл
Пакет csv-mode
- Emacs. cvs-mode
- Файл
rc.packages.el
:(desire 'csv-mode)
- Установим вызов
cvs-mode
для расширения.cvs
.- Файл
packages/csv-mode/loaddefs.ecf
:;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; -*- ;;; Major mode for editing comma/char separated values ;;; https://elpa.gnu.org/packages/csv-mode.html (add-to-list 'auto-mode-alist '("\\.[Cc][Ss][Vv]\\'" . csv-mode)) ;;;
- Файл
- Загружаем пакет при необходимости.
- Файл
packages/csv-mode/desire.ecf
:;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; -*- ;;; Major mode for editing comma/char separated values ;;; https://elpa.gnu.org/packages/csv-mode.html (require 'csv-mode)
- Файл
- Подключим режим визуального выравнивания полей.
- Файл
packages/csv-mode/desire.ecf
:;;; Keeps fields visually aligned, on-the-fly (add-hook 'csv-mode-hook 'csv-align-mode)
- Файл
- Настроим визуально представление длинных строк.
- Файл
packages/csv-mode/desire.ecf
:(add-hook 'csv-mode-hook '(lambda () (interactive) (toggle-truncate-lines nil))) ;;;
- Файл
Конец
- Файл
rc.packages.el
:;;;}}}
- Файл
4.9 Редактирование текста в броузере
4.9.1 Начало
- Файл
rc.packages.el
:;;; Edit text areas in browsers {{{
4.9.2 Edit with Emacs
- Файл
rc.packages.el
:(desire 'edit-server)
- Файл
packages/edit-server.ecf
:;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; -*- ;;; A Chromium/Firefox "clone" of It's All Text for spawning an editor to edit text areas in browsers. Based on David Hilley's original Chromium extension. ;;; https://github.com/stsquad/emacs_chrome (require 'edit-server) (setq edit-server-new-frame nil) (edit-server-start) (setq edit-server-url-major-mode-alist '(("github\\.com" . markdown-mode))) ;;;
4.9.3 Ghost Text
- Файл
rc.packages.el
:;; (desire 'atomic-chrome)
- Файл
packages/atomic-chrome.ecf
:;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; -*- ;;; Edit text area on Chrome with Emacs using Atomic Chrome ;;; https://github.com/alpha22jp/atomic-chrome (require 'atomic-chrome) (atomic-chrome-start-server) ;;; Atomic Chrome for Emacs automatically reflects modifications to the browser by default (setq atomic-chrome-enable-auto-update t) ;;; The default major mode of editing buffer is `text-mode`. You can change the major mode manually (setq atomic-chrome-default-major-mode 'markdown-mode) ;;; Choose the major mode for a specific website (setq atomic-chrome-url-major-mode-alist '(("github\\.com" . gfm-mode) ("redmine" . textile-mode))) ;;; Select editing buffer style ;;; full: Open in the selected window. ;;; split: Open in the new window by splitting the selected window (default). ;;; frame: Create a new frame and window in it. ;; (setq atomic-chrome-buffer-open-style split) ;;;
4.9.4 Конец
- Файл
rc.packages.el
:;;;}}}
4.10 Навигация по файлам
4.10.1 Dired
- Файл
rc.packages.el
:;;; Dired {{{ (desire 'mouse3 :recipe '(:fetcher github :repo "emacsmirror/mouse3" :branch "master" :files ("*.el"))) (desire 'dired) (desire 'dired+ :recipe '(:fetcher github :repo "emacsmirror/dired-plus" :branch "master" :files ("*.el"))) ;; (desire 'ranger) ;; (desire 'efar) ;; (desire 'sunrise-commander :recipe '(:fetcher github :repo "sunrise-commander/sunrise-commander")) (desire 'dirvish) ;; (desire 'diredc) ;;;}}}
4.10.2 Neotree
- Emacs. Neotree
- Файл
rc.packages.el
:;; (desire 'neotree)
4.10.3 Treemacs
- Файл
rc.packages.el
:(desire 'treemacs)
4.11 Навигация по тексту
4.11.1 Начало
- Файл
rc.packages.el
:;;; Text navigation {{{
4.11.2 line-reminder
- Line annotation for changed and saved lines: https://github.com/emacs-vs/line-reminder
- Файл
rc.packages.el
:;;; Line annotation for changed and saved lines (desire 'line-reminder)
- Файл
rc.packages.el
:;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; -*- ;;; Line annotation for changed and saved lines ;;; https://github.com/emacs-vs/line-reminder ;;; Enable for all buffers (global-line-reminder-mode t) ;;; Display Annotation ;;; linum | indicators (setq line-reminder-show-option 'linum) ;;; Display thumbnail (setq line-reminder-thumbnail t) ;;;
4.11.3 Конец
- Файл
rc.packages.el
:;;;}}}
4.12 Темы
- Подключаем темы в файле
rc.packages.el
:;;; Themes {{{ ;;; Nested menu for minor modes (desire 'minions) ;;; Tabs and ribbons for the mode-line (desire 'moody) ;;; Spacemacs theme ;; (desire 'spacemacs-theme :precondition-lisp-library "spacemacs-theme-pkg") ;;; Doom themes ;; (desire 'doom-themes) ;; (desire 'zenburn-theme) ;; (desire 'lambda-themes :recipe '(:fetcher github :repo "Lambda-Emacs/lambda-themes" :branch "main")) ;; (desire 'tao-theme) ;;; N Λ N O Theme ;; (desire 'nano-theme) ;;; Increase the padding/spacing of frames and windows ;; (desire 'spacious-padding)
4.12.1 Modus-themes
- Emacs. Темы. Modus-themes
- Подключаем темы в файле
rc.packages.el
:;; (desire 'modus-themes)
4.12.2 Ef-themes
- Emacs. Темы. Ef-themes
- Подключаем темы в файле
rc.packages.el
:(desire 'ef-themes)
4.12.3 Финализирование
- Финализируем раздел в
rc.packages.el
:;;;}}}
5 Финализирование
- Финализируем файл
rc.packages.el
:;;; rc.packages.el ends here