;;; -*- Mode: Emacs-Lisp -*- ;;; .emacs - A.Delcros ;;; Time-stamp: "07 Apr 98 11:48:47" ;; voila ce que m'ecrit xemacs dans le .xemacs-options quand je specifie la ;; position de la toolbar ;;(if (featurep 'toolbar) (progn (set-default-toolbar-position 'left) (add-spec-list-to-specifier default-toolbar-visible-p 'nil) (add-spec-list-to-specifier toolbar-buttons-captioned-p 'nil))) ;; voila ce que j'en retire ... si je veux mettre la barre a gauche ;;(set-default-toolbar-position 'left) ;; mais dans le cas present, je vire la toolbar qui ne me sert a rien. (set-specifier top-toolbar-visible-p nil) ;;configuration pour programmation en C ;;; defun permet de definir une fonction, ici on appelle la ;;; fonction "my-c-mode-common-hook" ;;; defun s'utilise comme ceci: ;;; defun NAME ARGUMENT-LIST BODY-FORMS (defun my-c-mode-common-hook () ;; my customizations for all of c-mode and related modes ;;(c-set-offset 'substatement-open 0) ;;; c-set-offset est une fonction qui permet de changer la valeur ;;; d'un element symbolique syntaxique qui est dans ;;; c-offsets-alist (c-set-offset 'arglist-intro '+) (c-set-offset 'arglist-cont-nonempty '+) (c-set-offset 'arglist-close 0) ;; other customizations can go here ;; setq permet d'affecter une valeur a une variable (setq c-basic-offset 4) (c-toggle-hungry-state 1) (C-toggle-auto-state 1) ;; (define-key c-mode-base-map "\C-m" 'reindent-then-newline-and-indent) ;; (define-key c-mode-base-map "\C-cc" 'compile) ) ;; un "hook" est un crochet on ajoute donc un crochet a un autre. ;; ici on dit que lorsque le c-mode-common-hook est utilise, ;; il doit utilise aussi notre "my-c-mode-common-hook". (add-hook 'c-mode-common-hook 'my-c-mode-common-hook) ;;set-face-background-pixmap est une fonction qui permet de definir ;;le pixmap de background pour les differentes zones d'Xemacs ;; cette fonction emane directement de set-face-property: ;; (set-face-property FACE PROPERTY VALUE &optional LOCALE TAG-SET HOW-TO-ADD) ;; pour supprimmer une propriete d'une fonte, il faut utiliser: ;; remove-face-property ;; normalement le HOW-TO-ADD n'est pas a specifier (set-face-background-pixmap 'default "/usr/local/xpm/blue_marble.ppm.xpm") (set-face-background-pixmap 'modeline "/usr/local/xpm/blue_marble.ppm.xpm") (set-face-background-pixmap 'modeline-buffer-id "/usr/local/xpm/blue_marble.ppm.xpm") (set-face-background-pixmap 'modeline-mousable "/usr/local/xpm/blue_marble.ppm.xpm") (set-face-background-pixmap 'modeline-mousable-minor-mode "/usr/local/xpm/blue_marble.ppm.xpm") ;; celui la marche parfaitement par defaut la couleur des fontes est noire. (set-face-foreground 'default "black") ;;pour afficher les caractères européens, c'est une fonction, ;; permet d'afficher les ISO 8859 c'est a dire les caracteres entre ;; 160 a 255 (caracteres accentues) (standard-display-european 1) ;; permet de charger une librairie (en l'occurence la librairie de syntaxe ;; iso ici. ;; load tout seul ce charge d'executer un ficher en lisp, cette fonction ;; cherche le fichier dans le "load-path" (load-library "iso-syntax") ;; CHUUUTTTT emacs ma copine dort :-), on affecte donc la valeur "t" (vrai) ;; a la variable visible-bell (setq visible-bell t) ;; Le load mime-setup doit imperativement etre initialise dans le .emacs pour ;; que mime soit utilise dans gnus. (load "mime-setup") (require 'bbdb) (bbdb-initialize) ;;; ispell avec le dictionnaire francais, préalablement installé. (voir sur ftp.lip6.fr/pub/ispell) ;;; autoload est une fonction qui permet de charger automatiquement une ;;; fonction depuis un fichier ;;; (autoload FUNCTION FILE &optional DOCSTRING INTERACTIVE TYPE) (autoload 'ispell-word "ispell" "Check the spelling of word in buffer." 't) (autoload 'ispell-region "ispell" "Check the spelling of region." 't) (autoload 'ispell-buffer "ispell" "Check the spelling of buffer." 't) (autoload 'ispell-message "ispell" "Check spelling of mail message or news post.") (autoload 'ispell-minor-mode "ispell" "Toggle mode to automatically spell check words as they are typed in.") ;;; permet de dire qu'avec M-$ on demande la verification d'un mot. (global-set-key (read-kbd-macro "M-$") 'ispell-word) (setq ispell-dictionary "francais" ispell-skip-sgml t) ;;Soyons cool et avec un simple C-a (defalias 'amicalement (read-kbd-macro "Amicalement. SPC Armand.")) (global-set-key "\C-a" 'amicalement) ;; C-z est ma combinaison de touche pour lancer une compilation ;; cela remplace le M-x compile ;; Make the sequence "C-x=" execute the `goto-line' command, ;; which prompts for a line number to jump to. (global-set-key "\C-z" 'compile) (global-set-key "\C-x=" 'goto-line) (set-face-foreground 'italic "blue") (set-face-foreground 'bold "red") (set-face-foreground 'bold-italic "green4") ;; et Zou un peu de coloration suivant les fontes :-) (load-library "big-menubar") ;; on definit un mode pour les differents ;; type d'extension de fichier. (setq auto-mode-alist '( ("\\.txt$" . text-mode) ("\\.sgml$" . sgml-mode) ("\\.C$" . c++-mode) ("\\.cc$" . c++-mode) ("\\.c$" . c-mode) ("\\.h$" . c-mode) ("\\.el$" . emacs-lisp-mode) ("\\.emacs$" . emacs-lisp-mode) ("\\.gnus$" . emacs-lisp-mode) ("\\.scm$" . scheme-mode) ("\\.l$" . lisp-mode) ("\\.lisp$" . lisp-mode) ("\\.f$" . fortran-mode) ("\\.awk$" . awk-mode ) ("\\.pl$" . perl-mode ) ("\\.tex$" . latex-mode ) ("\\.sh$" . sh-mode ) ("\\.html$" . html-mode) ("\\.shtml$" . html-mode) ("\\.php3$" . html-mode) ("\\.phtml$" . html-mode) ("M?[Mm]akefile$" . makefile-mode) ("\\.mk$" . makefile-mode)) ) ;; pour lancer les bons modes en fonction des extension de fichier. ;; Allez on se fout en mode auto-fill pour tous ce qui est en mode ;; texte ca nous evitera de faire des retours chariots sans arret. ;; bon la cette fonction n'est pas claire du tout on ne voit pas qui ;; ajoute quoi a qui. Cela necessite filladapt (adaptation des colonnes ;; je suppose, on ajoute a texte-mode-hook un auto-fill-mode ... ;; bon bon mais lambda ? en realite un petit lamba permet de definir une ;; fonction un peu comme defun .... mais la comme ce n'est pas une grosse ;; fonction et que l'on veut juste ajoute une fonction d'auto-fill ;; on ne remue pas l'ocean .... ;; et oui mais pour dire que text-mode est en auto-fill il faudrait au moins ;; dire a quoi ressemble un fichier texte ! et bien je l'ai fait juste au ;; dessus en disant que text-mode = quelque chose .txt. NA ! (require 'filladapt) (add-hook 'text-mode-hook '(lambda () (auto-fill-mode 1) )) ;; et en plus j'ajoute mon grain de sel en rajoutant l'ispell minor-mode.. ;; foulalala .... et ca marche. j'ai fait la meme chose dans mon .gnus, pour ;; que la correction automatique fonctionne a chaque fois que je fais un mail. (require 'ispell) (add-hook 'text-mode-hook '(lambda () (ispell-minor-mode 1) )) ;; ceci permet de lire un fichier texte compresse sans avoir a le ;; decompresser au préalable (toggle-auto-compression) ;; donc on charge le desktop.elc ... et alors ... ;; et alors c'est ce qui est dit dans le desktop.el: ;; "save partial status of Emacs when killed" ;; Save the Desktop, i.e., ;; - some global variables ;; - the list of buffers with associated files. For each buffer also ;; - the major mode ;; - the default directory ;; - the point ;; - the mark & mark-active ;; - buffer-read-only ;; - some local variables ;; et les trois lignes qui suivent sont consideres comme necessaire a son ;; fonctionnement ;; ensuite si je lance emacs depuis un directory, j'affiche un fichier ;; et que je fais Echap-x desktop-save, emacs va garder tous les parametres, ;; et lorsque je relancerai emacs, je me retrouverai automatiquement avec le ;; fichier que j'avais edite auparavant et tout le bordel autour .... ;; etrange ... comme idee non ? (load "desktop") (desktop-load-default) (desktop-read) ;; permet d'initialiser les variables qui s'accordent avec ce que ;; l'utilisateur souhaite. custom.el est un utilitaire pour declarer ;; et initialiser des options. (custom-set-variables '(user-mail-address "delcros@mistra.peloponese.fr" t) '(query-user-mail-address nil)) ;; permet d'initialiser l'aspect des fontes selon les preferences de ;; l'utilisateur. Ce qui m'etonne c'est qu'il n'y a rien derriere ... ;; un peu seul quoi ... (custom-set-faces) ;; voila la gentille petite commande par défaut pour compiler. (setq compile-command "make" ) ;;parametre essentiel au demmarage de VM. Le lecteur de mail ;; je n'utilise plus VM mais gnus. (voir le .gnus) (autoload 'vm "vm" "Start VM on your primary inbox." t) (autoload 'vm-other-frame "vm" "Like `vm' but starts in another frame." t) (autoload 'vm-visit-folder "vm" "Start VM on an arbitrary folder." t) (autoload 'vm-visit-virtual-folder "vm" "Visit a VM virtual folder." t) (autoload 'vm-mode "vm" "Run VM major mode on a buffer" t) (autoload 'vm-mail "vm" "Send a mail message using VM." t) (autoload 'vm-submit-bug-report "vm" "Send a bug report about VM." t) (custom-set-variables '(user-mail-address "adelcros@cybercable.fr" t) '(query-user-mail-address nil)) (custom-set-faces) ;; c'est surtout le query qui est utile pour qu'il evite de me ;; redemander mon adresse email à tout bout de champs. (setq mail-default-reply-to "adelcros@cybercable.fr") ;; insère un champ reply-to (setq mail-archive-file-name "/home/delcros/Mail/outbox") ;; tous les mails envoyés sont stockés dans outbox (setq-default mime-editor/transfer-level 8) ;; on utilise le 8bit et surtout pas le quoted printable .... ;; (setq mail-personnal-alias-file "/home/delcros/mail-alias") ;; normalement cela permet de definir un autre fichier qui ;; contient les adresses email mais ca ne marche pas. ;;affichage des caractères 8 bits pas necessaire on l'a deja invoque ;; avant ... ;;(standard-display-european t) (setq line-number-mode t) (setq column-number-mode t) ;; Utile ! permet d'afficher les numeros de ligne ;; et de colonne dans la barre d'état de emacs. ;;les nouveaux caractères sont des lettres ;;(require 'iso-syntax ) ;;Incantation magique, pas très nécessaire (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) ;;finalement, je prends celui de Nat, c'est beaucoup plus cool... ;; Apparement, ça c'est pour tout le monde... ;;; cfg font-lock ;; ICI (setq font-lock-maximum-decoration t ;; ICI font-lock-background-mode 'light) ;; remplacer light par dark si nécessaire ;; ICI Y A DU BOULOTTT !!!!!!!!!!!!!!!!!!!!!!!!!! ;; (require 'font-lock) ;; (set-face-foreground 'font-lock-function-name-face "grey") ;; (set-face-foreground 'font-lock-variable-name-face "red3") ;; (set-face-foreground 'font-lock-type-face "lightblue") ;; (set-face-background 'default "bisque") ;; (set-face-foreground 'bold "green4") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Definition des couleurs: ;; ;; On definit une fonction de ;; ;; couleur global pour tous les ;; ;; et on rajoute ce crochet de fonction ;; ;; a tous les modes existants ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'font-lock) ;; cette chose -> (global-font-lock-mode 't) ne s'utilise qu'avec emacs et non pas xemacs. (setq font-lock-maximum-decoration 't font-lock-background-mode 'dark) ; ou "light", selon couleur de fond (defun my-color-customization-hook() (set-face-foreground 'default "salmon") (set-face-foreground 'bold "red3") (set-face-foreground 'modeline-buffer-id "Violet2") (set-face-foreground 'modeline "grey") (set-face-foreground 'font-lock-comment-face "Red2") (set-face-foreground 'font-lock-string-face "pink2") (set-face-foreground 'font-lock-keyword-face "Orange2") (set-face-foreground 'font-lock-function-name-face "grey") (set-face-foreground 'font-lock-variable-name-face "red3") (set-face-foreground 'font-lock-type-face "lightblue") (set-face-foreground 'font-lock-reference-face "VioletRed2") (set-face-foreground 'font-lock-doc-string-face "salmon") (set-face-foreground 'font-lock-preprocessor-face "green3") (set-face-foreground 'modeline-buffer-id "Violet") (set-face-background 'zmacs-region "grey")) ; Quand on selectionne ; avec la souris (defun my-color-message-hook() (set-face-foreground 'message-cited-text-face "grey") (set-face-foreground 'message-header-name-face "Green3")) (add-hook 'fundamental-mode 'my-color-customization-hook) (add-hook 'c-mode-hook 'my-color-customization-hook) (add-hook 'c++-mode-hook 'my-color-customization-hook) (add-hook 'emacs-lisp-mode-hook 'my-color-customization-hook) (add-hook 'perl-mode-hook 'my-color-customization-hook) (add-hook 'html-mode-hook 'my-color-customization-hook) (add-hook 'lisp-mode-hook 'my-color-customization-hook) (add-hook 'lisp-interaction-mode-hook 'my-color-customization-hook) (add-hook 'message-mode-hook 'my-color-customization-hook) (add-hook 'message-mode-hook 'my-color-message-hook) (global-set-key [f12] 'font-lock-mode) (global-set-key [(shift f12)] 'show_face_on_point_name) ;; ICI (font-lock-mode t) ;; (global-font-lock-mode t) ;;; fin cfg font-lock ;;; AUCTeX ;;config pour le SGML (autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t ) (setq sgml-auto-activate-dtd t) (setq sgml-set-face t) (setq sgml-default-dtd-file t) ;;permet de convertir les accents en code lorsqu'on sauve un fichier SGML (setq sgml-mode-hook '(lambda () "Defauts pour le mode SGML." (load-library "iso-sgml"))) ;;Pour éviter d'avoir à faire l'auto-fill en SGML (setq sgml-mode-hook '(lambda () "Defauts pour le mode SGML." (auto-fill-mode) (setq fill-column 80))) ;; chargement du mode psgml (add-to-list 'load-path "/usr/local/lib/xemacs-20.4/lisp/psgml") (autoload 'sgml-mode "psgml" "Mode majeur SGML." t) ;; initialisation de quelques variables psgml qui permettent de disposer: ;;1.d'un accès direct à l'analyseur nsgmls livré avec le kit sgml-tools, par l'intermédiaire de la ;; combinaison C-c C-v ; ;; 2.d'un log de parsing un peu plus explicite que celui établi par défaut ; ;; 3.d'une mise en relief des balises SGML de votre document ; ;; 4.d'un rappel, sur la ligne de mode d'Emacs, de l'élément dans lequel se trouve votre point d'insertion ; ;; 5.de la possibilité d'utiliser TAB et C-c C-q pour justifier élégamment le texte ; ;; 6.d'un niveau d'indentation égal à 1, qui évitera de se retrouver trop vite à droite de l'écran, lorsqu'on ;; se trouve en train d'écrire à un niveau d'imbrication trop profond. Mais vous pouvez garder la ;; valeur 2 par défaut si vous préférez. (setq sgml-validate-command "nsgmls -s %s %s" sgml-trace-entity-lookup t sgml-set-face t sgml-live-element-indicator t sgml-indent-data t sgml-indent-step 1) ;;; config html-helper-mode: (autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t) (setq html-helper-do-write-file-hooks t html-helper-build-new-buffer t) (add-hook 'html-helper-load-hook '(lambda () (require 'html-font))) (add-hook 'html-helper-mode-hook '(lambda () (font-lock-mode 1))) ;;(setcdr (assoc "\\.s?html?\\'" auto-mode-alist) 'html-helper-mode) ;;; end cfg html-helper-mode (add-hook 'find-file-hooks 'auto-insert) (load-library "autoinsert") (add-to-list 'load-path "~/emacs") (load-library "sgml-header") (setq auto-insert-alist (append '(((sgml-mode . "SGML Mode") . insert-sgml-header)) auto-insert-alist)) (cond (running-xemacs (setq font-lock-use-default-fonts nil) (setq font-lock-use-default-colors nil))) ;;permet d'afficher l'heure, le loadmeter et la mailbox dans la modeline. (display-time) ;; Options Menu Settings ;; ===================== (cond ((and (string-match "XEmacs" emacs-version) (boundp 'emacs-major-version) (or (and (= emacs-major-version 19) (>= emacs-minor-version 14)) (= emacs-major-version 20)) (fboundp 'load-options-file)) (load-options-file "/home/delcros/.xemacs-options"))) ;; ============================ ;; End of Options Menu Settings