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:
Распечатка 1: rc.packages.el
  • Файл:
    
    ;;; 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 Автодополнение

  • Файл rc.packages.el:
    ;;; Completion {{{
    
    ;; (desire 'company)
    (desire 'corfu)
    
    ;;;}}}
    

4.3 Автодополнение в минибуфере

4.3.1 Начало

  • Файл rc.packages.el:
    ;;; Minibuffer completion {{{
    

4.3.2 Ido

  • Файл rc.packages.el:
    ;; (desire 'ido)
    

4.3.3 Helm

  • Файл rc.packages.el:
    ;; (desire 'helm-posframe)
    ;; (desire 'helm)
    

4.3.4 Ivy

  • Файл rc.packages.el:
    ;; (desire 'ivy)
    

4.3.5 Selectrum

  • Файл rc.packages.el:
    ;; (desire 'selectrum)
    

4.3.6 Vertico

  • Файл rc.packages.el:
    (desire 'vertico)
    

4.3.7 Конец

  • Файл rc.packages.el:
    
    ;;;}}}
    

4.4 Навигация по окнам

4.4.1 Начало

  • Файл rc.packages.el:
    ;;; Window navigation {{{
    
    Распечатка 2: rc.packages.el

4.4.2 Windmove

  • Emacs. Окна. Windmove

  • Файл rc.packages.el:

    (desire 'windmove)
    
    Распечатка 3: rc.packages.el
  • Настройка пакета:

    ;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; -*-
    ;;; Directional window-selection routinesdirectional window-selection routines
    ;;; https://www.emacswiki.org/emacs/WindMove
    
    Распечатка 4: packages/windmove.ecf
  • По умолчанию используется комбинация Shift + стрелки. Но это конфликтует с org-mode:

    ;;; Shifted arrow keys
    ;; (windmove-default-keybindings)
    
    Распечатка 5: packages/windmove.ecf
  • Будем использовать Ctrl + стрелки:

    ;;; Ctrl + arrow keys
    (windmove-default-keybindings 'ctrl)
    
    Распечатка 6: packages/windmove.ecf
  • Что-то делает:

    ;;; Wrap around at edges
    (setq windmove-wrap-around t)
    
    Распечатка 7: packages/windmove.ecf
  • Завершим файл:

    ;;;
    
    Распечатка 8: packages/windmove.ecf

4.4.3 Конец

  • Файл rc.packages.el:
    ;;;}}}
    
    Распечатка 9: rc.packages.el

4.5 Общие настройки мод

4.6 Поддержка LSP

4.6.1 Начало

  • Файл rc.packages.el:

    ;;; LSP mode {{{
    
    Распечатка 10: rc.packages.el
  • Включаем поддержку emacs-lsp-booster:

    (desired 'emacs-lsp-booster :precondition-system-executable "emacs-lsp-booster")
    
    Распечатка 11: rc.packages.el

4.6.2 Eglog

  • Файл rc.packages.el:
    (desire 'eglot)
    
    Распечатка 12: rc.packages.el
  • Начальная загрузка:
    ;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; -*-
    ;;; A client for Language Server Protocol servers
    ;;; https://github.com/joaotavora/eglot
    
    ;;;
    
    Распечатка 13: packages/eglot/loaddefs.ecf
  • Загрузка самого пакета:
    ;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; -*-
    ;;; A client for Language Server Protocol servers
    ;;; https://github.com/joaotavora/eglot
    
    (require 'eglot)
    
    ;;; Control blocking of LSP connection attempts
    (setq eglot-sync-connect nil)
    
    (setq eglot-connect-timeout 10)
    (setq eglot-autoshutdown t)
    (setq eglot-send-changes-idle-time 0.5)
    
    ;;; Disable `eglot-auto-display-help-buffer` because :select t in its popup rule causes eglot to steal focus too often.
    (setq eglot-auto-display-help-buffer nil)
    
    ;;; Disable any debug logging and may speed things up
    (setq eglot-events-buffer-size 0)
    
    ;;;
    
    Распечатка 14: packages/eglot/desire.ecf
  • Загрузка emacs-lsp-booster:
    ;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; -*-
    ;;; Boost eglot using lsp-booster
    ;;; https://github.com/jdtsmith/eglot-booster
    
    (desire 'eglot-booster :recipe '(:fetcher github :repo "jdtsmith/eglot-booster" :branch "main" :files ("*.el")))
    (require 'eglot-booster)
    (eglot-booster-mode)
    
    ;;;
    
    Распечатка 15: packages/eglot/emacs-lsp-booster.ecf

4.6.3 Lsp-mode

  • Файл rc.packages.el:
    ;; (desire 'lsp-mode)
    

4.6.4 Конец

  • Файл rc.packages.el:
    
    ;;; }}}
    

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")

;;;}}}

4.8 Org-mode

  • Org-mode
  • Конфигурация для org-mode:
;;; Org-mode {{{
Распечатка 16: rc.packages.el
  • Разное:
;; (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)
Распечатка 17: rc.packages.el

4.8.1 Повестка дня

  • Конфигурация повестки дня:
;;; 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)
Распечатка 18: rc.packages.el

4.8.2 org-gtd

  • Emacs. Пакеты. Org-gtd
  • Подключение для загрузки:
    ;;; GTD
    (desire 'org-gtd)
    
    Распечатка 19: rc.packages.el
  1. Клавиатурные сочетания

4.8.3 mobileorg

(desired 'mobileorg)
Распечатка 20: rc.packages.el

4.8.4 org-mode

(desire 'org)

;;; For messaging
;; (desire 'org-msg)

;;;}}}
Распечатка 21: rc.packages.el

4.9 Заметочники

4.9.1 Org-roam

;;; 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)

;;;}}}

4.9.2 Denote


(desire 'deft)
;; (desire-old 'zetteldeft nil "zetteldeft" t)

(desire 'denote)

;;}}}

4.10 Разное

;; 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.11 Программные режимы

4.11.1 Работа с CSV

  1. Начало

    • Файл rc.packages.el:
      ;;; CSV files {{{
      
  1. Пакет 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)))
        
        ;;;
        
  1. Конец

    • Файл rc.packages.el:
      ;;;}}}
      

4.11.2 Поддержка ebuild-файлов

  • Сайт: https://wiki.gentoo.org/wiki/Project:Emacs

  • Файл rc.packages.el:

    ;;; Ebuild files
    (desire 'ebuild-mode :recipe '(:fetcher github :repo "emacsmirror/ebuild-mode" :branch "master"))
    
    Распечатка 23: rc.packages.el
  • Настроим загрузку

    ;;; -*- mode: emacs-lisp; lexical-binding: t; coding: utf-8-unix; -*-
    ;;; Edit ebuild and eclass files
    ;;; https://wiki.gentoo.org/wiki/Project:Emacs
    ;;; https://github.com/emacsmirror/ebuild-mode
    
    (add-to-list 'load-path "/usr/share/emacs/site-lisp/ebuild-mode")
    (autoload 'ebuild-mode "ebuild-mode"
      "Major mode for Gentoo .ebuild files." t)
    (autoload 'ebuild-eclass-mode "ebuild-mode"
      "Major mode for Gentoo .eclass files." t)
    (autoload 'ebuild-repo-mode "ebuild-mode"
      "Minor mode for files in an ebuild repository." t)
    (autoload 'ebuild-repo-mode-maybe-enable "ebuild-mode")
    (autoload 'devbook-mode "devbook-mode"
      "Major mode for editing the Gentoo Devmanual." t)
    (autoload 'gentoo-newsitem-mode "gentoo-newsitem-mode"
      "Major mode for Gentoo GLEP 42 news items." t)
    (autoload 'glep-mode "glep-mode"
      "Major mode for Gentoo Linux Enhancement Proposals." t)
    
    (add-to-list 'auto-mode-alist '("\\.ebuild\\'" . ebuild-mode))
    (add-to-list 'auto-mode-alist '("\\.eclass\\'" . ebuild-eclass-mode))
    (add-to-list 'auto-mode-alist '("/devmanual.*\\.xml\\'" . devbook-mode))
    (add-to-list 'auto-mode-alist
                 '("/[0-9]\\{4\\}-[01][0-9]-[0-3][0-9]-.+\\.[a-z]\\{2\\}\\.txt\\'"
                   . gentoo-newsitem-mode))
    (add-to-list 'auto-mode-alist '("/glep.*\\.rst\\'" . glep-mode))
    (add-to-list 'auto-mode-alist
                 '("/\\(package\\.\\(mask\\|unmask\\|use\\|env\
    \\|license\\|properties\\|accept_\\(keywords\\|restrict\\)\\)\
    \\|\\(package\\.\\)?use.\\(stable\\.\\)?\\(force\\|mask\\)\\)\\'"
                   . conf-space-mode))
    (add-to-list 'auto-mode-alist
                 '("/make\\.\\(conf\\|defaults\\)\\'" . conf-unix-mode))
    (add-to-list 'interpreter-mode-alist '("openrc-run" . sh-mode))
    (add-to-list 'interpreter-mode-alist '("runscript" . sh-mode))
    (add-hook 'find-file-hook #'ebuild-repo-mode-maybe-enable)
    (modify-coding-system-alist 'file "\\.\\(ebuild\\|eclass\\)\\'" 'utf-8)
    
    Распечатка 24: packages/ebuild-mode/loaddefs.ecf

4.12 Редактирование текста в броузере

4.12.1 Начало

  • Файл rc.packages.el:
    ;;; Edit text areas in browsers {{{
    

4.12.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.12.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.12.4 Конец

  • Файл rc.packages.el:
    ;;;}}}
    

4.13 Навигация по файлам

4.13.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.13.2 Neotree

4.13.3 Treemacs

  • Файл rc.packages.el:
    (desire 'treemacs)
    

4.14 Навигация по тексту

4.14.1 Начало

  • Файл rc.packages.el:
    ;;; Text navigation {{{
    

4.14.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.14.3 Конец

  • Файл rc.packages.el:
    ;;;}}}
    

4.15 Темы

  • Подключаем темы в файле 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.15.1 Modus-themes

4.15.2 Ef-themes

4.15.3 Финализирование

  • Финализируем раздел в rc.packages.el:
    
    ;;;}}}
    

5 Финализирование

  • Финализируем файл rc.packages.el:
    
    ;;; rc.packages.el ends here
    

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие