- This is a work in progress but I use daily this configuration for
professional programming and administration system works.
See the roadmap at the end of this file and the to-do list. - This is a huge refactoring of =pi-emacs-configuration= using Doom Emacs.
- The last stable Doom Emacs.
- Emacs 29+ compiled with
Tree-sitter support.
Here a bash script example to compile and install an optimized Emacs 29+ version with Tree-sitter support.
- Clone this repository into your
USERDOOMDIR/modules
(~/.doom.d/modules
on Linux) :
cd ~/.doom.d/modules && git clone https://github.com/pivaldi/pimacs.git
- You can enable PIMacs in two ways :
- Full featured PIMacs as it satisfy MY daily coding needs
In your Doom fileinit.el
, at the end of the file, after the(doom! …)
\ part, add the code(load! "modules/pimacs/init")
.\ This will load all the PIMacs modules at once. - Partially featured PIMacs as it satisfy YOUR needs
In your Doom fileinit.el
, at the end of the file, after the(doom! …)
\ part, add the following code uncommenting the module you want to enabled :
- Full featured PIMacs as it satisfy MY daily coding needs
(doom! :pimacs
default ;; PIMacs default Emacs configuration on top of Doom.
;; aliases ;; Define aliases starting with `_`. The most useful are `_rb`, `_sir`, `_gf`.
;; (theme +no-font) ;; Define some faces and load Zenburn Theme.
;;;; See the `README.md` in the directory `pimacs/theme`
;; (keys +azerty) ;; Define the PIMacs keys binding.
;; session ;; Auto reload the last session at startup through
;;;; `doom/quickload-session` (no desktop bad practice in Doom)
;; etc…
)
Remember to run =doom sync= after modifying =init.el= !
- pimacs/aliases: Define useful aliases starting by =_=.
- pimacs/avy: Create key bindings for avy with prefix (Doom does not provide them).
- pimacs/bm: Visible local bookmarks in buffer is a simple and useful complement to the native Emacs bookmark system.
- pimacs/calendar-fr: Configure the calendar for French support.
- pimacs/corfu: Extra configuration of the package COmpletion in Region FUnction.
- pimcas/crypt: PIMacs extra encrypting configuration and features.
- pimacs/default: PIMacs default configuration.
- pimacs/dired: Dired mode specific configuration. See also the auto-generated dired-mode-map key bindings refcard and the dired-mode-map PIMacs key bindings refcard.
- pimacs/doc: Generated PIMacs Documentation. Contains all the Doom and PIMacs fundamental key bindings refcards classed by key bindings prefixes.
- pimacs/docker: Installs and configures Docker Mode.
- pimcas/flyspell: Dictionary switching between two dictionaries with Flyspell.
- pimacs/functions: Define useful functions used under the hood by PIMacs.
- pimacs/keys: PIMacs global-map configuration. See also the auto-generated global-map key bindings refcard and the global-map PIMacs key bindings refcard.
- pimacs/lang-c: Configuration of
C
mode and derived.(setq-default c-basic-offset 2) (c-set-offset 'substatement-open '0) (c-set-offset 'brace-list-open '0) (c-set-offset 'arglist-close '0) (c-set-offset 'statement-case-open '0) (c-set-offset 'arglist-cont-nonempty '4) (c-set-offset 'arglist-intro 'c-basic-offset)
- pimacs/lang-go: Configuration for the Go programming language.
Support nativego-ts-mode
(Emacs 30+) and standartgo-mode
. - pimacs/lang-php: Configuration for the PHP programming language.
Support nativephp-ts-mode
(Emacs 29+) and standartphp-mode
. - pimacs/lsp: Complet/extend the default Doom configuration of the Langage Server Protocol.
- pimacs/notmuch: This package provides extra configurations of the default Doom Emacs configuration for https://notmuchmail.org/ using https://github.com/pivaldi/notmuch-multi.
- pimacs/origami: Provide/configure the Origami text folding minor mode.
- pimacs/org: Configure the Org mode and add Latex templating.
- pimacs/pairing: Enhanced configuration of smartparens with extended features.
- pimacs/session: Workspace/Session Persistence and Auto Restore Last Session.
- pimacs/theme: Slight customization of the Emacs theme depending the module options used.
- pimacs/tramp: Slight configuration of TRAMP.
TRAMP
is a built-in Emacs feature that enables you to access and edit files on remote systems, including those that require authentication usingSSH
,SFTP
, or other protocols. - pimacs/treesit: Automatically install and use tree-sitter major modes in Emacs 29+.
- Module for sql-ts-mode/sql-mode
- Better typescript-ts-mode
- Snippet
- Templating
- Support of Go html template https://github.com/a-h/templ. See https://drshapeless.com/blog/posts/writing-go-templ-with-emacs.html
- Hide password on some files (gpg, authinfo, etc)
- Improve dired experience
- Make a module for direnv support
- Use easy-kill https://github.com/leoliu/easy-kill
- elfeed
- lang-lua
- lang-rust
- lang-asy
- Configure org-mode and markdown support for my needs