Here an extended configuration of Emacs 29+ on Top of Doom Emacs programming oriented with special attention to French keyboard.
- 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
You imperatively need these softwars installed :
- 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
!
Define useful aliases starting by _
.
Create key bindings for avy with prefix (Doom does not provide them).
Visible local bookmarks in buffer is a simple and useful complement to the native Emacs bookmark system.
Configure the calendar for French support.
Extra configuration of the package COmpletion in Region FUnction
Dired mode specific configuration.
See also the auto-generated
dired-mode-map key bindings refcard and the
dired-mode-map PIMacs key bindings refcard.
Generated PIMacs Documentation. Contains all the Doom and PIMacs fundamental key bindings refcards classed by key bindings prefixes.
Define useful functions used under the hood by PIMacs.
PIMacs global-map
configuration.
See also the auto-generated
global-map key bindings refcard and the
global-map PIMacs key bindings refcard.
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)
Configuration for the Go programming language.
Support native go-ts-mode
(Emacs 30+) and standart go-mode
.
Configuration for the PHP programming language.
Support native php-ts-mode
(Emacs 29+) and standart php-mode
.
Complet/extend the default Doom configuration of the Langage Server Protocol.
Provide/configure the Origami text folding minor mode
Enhanced configuration of smartparens with extended features.
Workspace/Session Persistence and Auto Restore Last Session.
Slight customization of the Emacs theme depending the module options used
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 using SSH
, SFTP
, or
other protocols.
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
- Hide password on some files (gpg, authinfo, etc)
- Check macro support of Doom
- 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