Emacs
Emacs est l’éditeur qui fourni le meilleur support pour Guile.
Installation
Tu peux l’installer de la même manière que tu as installé Guile (ci-dessous, l'exemple avec Guix) :
$ guix install emacs
Configuration
Cet ouvrage n'a pas pour vocation à apprendre à utiliser Emacs. Je te propose donc ci-suivant une configuration prêt à l'emploi pour rendre l'écriture de programmes en Guile plus agréable avec Emacs. Libre à toi de ne prendre que ce qui t'intéresse !
Aide visuelle
Surligner la ligne du curseur
;; paste this lines into your emacs config file
(global-hl-line-mode +1)
Sans
Avec
Surligner la paire de délimiteurs sous le curseur
;; paste this lines into your emacs config file
(show-paren-mode 1)
(setq show-paren-delay 0)
Sans
Avec
Aide opérationnelle
« make Scheme hacking inside Emacs (even more) fun »
Si tu ne devais installer qu'une extension, c'est bien Geiser !
Installation
$ guix install emacs-geiser emacs-geiser-guile
Activation
M-x run-guile
Utilisation
Tu peux te référer à https://www.nongnu.org/geiser/Cheat-sheet.html#Cheat-sheet
Ajouter de l'auto-completion à Geiser :
Installation
$ guix install emacs-ac-geiser
Activation
;; paste this lines into your emacs config file
(ac-config-default)
(require 'ac-geiser)
(add-hook 'geiser-mode-hook 'ac-geiser-setup)
(add-hook 'geiser-repl-mode-hook 'ac-geiser-setup)
(eval-after-load "auto-complete"
'(add-to-list 'ac-modes 'geiser-repl-mode))
Sans
Avec
Éditer le code en s'appuyant sur la structure des S-expressions
Installation
$ guix install emacs-paredit
Activation
;; paste this lines into your emacs config file
(require 'paredit)
(autoload 'enable-paredit-mode "paredit" "Turn on pseudo-structural editing of Lisp code." t)
(add-hook 'scheme-mode-hook #'enable-paredit-mode)
Utilisation
Je ne saurais faire mieux que ce guide de Dan Midwood.
Aide au réusinage
Éditer plusieurs chaines de charactères de la même manière simultanément
Installation
$ guix install emacs-iedit
Activation
;; paste this lines into your emacs config file
(require 'iedit)
Utilisation
C-;
sur un mot pour éditer toutes ses occurences.
C-0 C-;
sur un mot pour éditer toutes ses occurences dans la région active.
Éditer plusieurs endroits du fichier de la même manière simultanément
Installation
$ guix install emacs-multiple-cursors
Activation
;; paste this lines into your emacs config file
(require 'multiple-cursors)
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)
Utilisation
C->
Ajouter un curseur sur la ligne suivante
C-<
Ajouter un curseur sur la ligne précédente
Lorsque l'édition est finie, C-g
Extraire des variables et des fonctions
Installation
;; paste this lines into your emacs config file
(if (not (package-installed-p 'emr))
(progn
(package-refresh-contents)
(package-install 'emr)))
Activation
;; paste this lines into your emacs config file
(require 'emr)
(autoload 'emr-show-refactor-menu "emr")
(define-key prog-mode-map (kbd "M-RET") 'emr-show-refactor-menu)
(eval-after-load "emr" '(emr-initialize))
(global-set-key (kbd "M-v") 'emr-scm-extract-variable)
(global-set-key (kbd "M-f") 'emr-scm-extract-function)
Utilisation
M-v
Extraire une variable
M-f
Extraire une fonction