Configurer Emacs consiste à écrire un fichier .emacs
se composant de code LISP. Par exemple, pour créer un racourcis clavier, comme lancer RMAIL lorsqu'on tape C-c r
:
; Lecture du courrier. (global-set-key "\C-cr" 'rmail)
Cette définition est faite pour tous les modes. On peut définir une nouvelle fonction et l'affecter à un racourcis clavier (en mode C dans l'exemple qui suit) :
; Insere dans un fichier le bloc suivant ("\n" passe a la ligne) : ; ; if () { ; } ; ; et met le curseur entre les parantheses ("backward-char 6", revient ; 6 caracteres en arriere). (defun start-if-block() (interactive) (insert "if () {\n}\n") (backward-char 6) ) ; Affectation d'une sequence de touches a cette fonction. (define-key c-mode-map "\C-ci" 'start-if-block)
On peut aussi reconfigurer le clavier :
; Reconfiguration du clavier. ; Touche Backspace = retour arriere. ; ; "?" signifie "le code ASCII de" ; "?\C-h" signifie donc "le code ASCII de Ctrl enfonce avec h". ; Ce code (8) est le meme que "retour arriere". ; "\C-?" represente la touche supprime. (keyboard-translate ?\C-h ?\C-?) ; Ctrl-\ ("?\C-\\") = Ctrl-h. (keyboard-translate ?\C-\\ ?\C-h) ; Encore des modifications de touches... (global-set-key "\C-a" 'scroll-up) (global-set-key "\C-q" 'scroll-down) ; "global-unset-key" libere une sequence de touche. ; "overwrite-mode" provoque la bascule du mode insertion/remplacement. (global-unset-key "\C-r") (global-set-key "\C-r" 'overwrite-mode) ; La touche Entree indente la ligne suivante. (define-key indented-text-mode-map "\C-m" 'newline-and-indent)
Enfin, voici quelque modifications succinctes qui permettent d'améliorer l'apect visuel du texte :
; Mode par defaut pour edition de texte qui indente les lignes. (setq default-major-mode 'indented-text-mode) ; Validation de la saisie au kilometre par "text-mode-hook". ; Longueur maximum de chaque ligne a 72 caracteres. (setq text-mode-hook 'turn-on-auto-fill) (setq fill-column 72)
Ce ne sont ici que quelque exemples de base qui peuvent largement être améliorés.
;; ;; Fichier .emacs: initialisation d'emacs ;; Fichier de base : Guide du Rootard ;; (display-time) ;; Pour avoir l'heure dans la barre d'etat (setq display-time-24hr-format t) ;; Format 24 heures ;; Nouveaux modes (autoload 'c++-mode "cplus-md" "C++ Editing Mode" t) (autoload 'perl-mode "perl-mode" "Perl Editing Mode" t) (autoload 'c-mode "c-mode" "C Editing Mode" t) ; mieux vaudrait utiliser le "cc-mode" ;; Auto-Mode Settings : positionne le mode selon l'extension (setq auto-mode-alist (append '(("\.c$" . c-mode) ;; utilise le mode C++ meme pour C ("\.h$" . c-mode) ("\.C$" . c++-mode) ("\.H$" . c++-mode) ("\.cc$" . c++-mode) ("\.C$" . c++-mode) ("\.pl$" . perl-mode) ;; Perl ("/tmp/snd\.[0-9]*" . text-mode);; Text (pour le mail) ("[Rr][Ee][0-9]*" . text-mode) ("\.ada$" . ada-mode) ;; Ada ("\.spec$" . ada-mode) ("\.body$" . ada-mode)) auto-mode-alist)) # Remapes varies (global-set-key "\eg" 'goto-line) ;; ESC G = Goto line (global-set-key "\eo" 'overwrite-mode) (put 'eval-expression 'disabled nil) ;; Accents... (standard-display-european 1) (load-library "iso-syntax") ;; Sous X-Window, textes en couleurs (C/C++/Shell/Makefile,etc) (cond (window-system (setq hilit-mode-enable-list '(not text-mode) hilit-background-mode 'light hilit-inhibit-hooks nil hilit-inhibit-rebinding nil) (require 'hilit19) )) (if (not (equal window-system "")) (global-set-key "\C-?" 'delete-char)) )) ;; mieux vaudrait employer font-lock