;; Fichier Emacs utilisé pour le cours de Système 1 (S2) ;; Une version de l’ancien .emacs est sauvegardé sous le nom .sauvegarde_point_emacs ;; Pour rendre la sélection plus lisible (if (display-graphic-p) (set-face-attribute 'region nil :background "#AA0") (progn ;; si on est dans un terminal on supprime tout les machins ;; graphiques (load-theme 'wombat) (menu-bar-mode -1) (tool-bar-mode -1) (scroll-bar-mode -1) )) ;; (when (not display-graphic-p) ;; (progn () ;; (load-theme 'tango-dark)) (setq org-startup-folded -1) ;; Supprimer le message initiale qui ne sert à rien (setq inhibit-startup-message t) ;; On affiche l'heure au format 24h (setq display-time-24hr-format t) (display-time-mode t) ;; On affiche le numéro de la colonne (à côté du numéro de ligne) de la position du curseur (setq column-number-mode t) ;; Permet de taper y au lieu de yes et n au lieu de no (fset 'yes-or-no-p 'y-or-n-p) (fset 'yes-or-no 'y-or-n) ;; La recherche est insensible à la casse (setq-default case-fold-search t) ;; Pour rendre la sélection plus visible ;(set-face-attribute 'region nil :background "#AA0") ;; Pour rendre le minibuffer plus lisible dans le terminal ;(set-face-attribute 'minibuffer-prompt nil :background "#AA0") ;; Pour éviter des fichiers de sauvegarde tout moche… (setq backup-directory-alist '(("." . "~/.emacs-backup-files/"))) ;; Autre (setq current-language-environment "UTF-8") (setq standard-display-european t) (global-visual-line-mode 1) ;; Nécessaire pour utiliser le raccourci C-x C-j pour accéder au mode dired (require 'dired-x) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; Pour afficher l’heure de manière visible ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defface egoge-display-time '((((type x w32 mac)) ;; #060525 is the background colour of my default face. (:forground "red" :inherit bold)) (((type tty)) (:foreground "yellow"))) "Face used to display the time in the mode line.") (setq display-time-string-forms '((propertize (concat " " 24-hours ":" minutes " ") 'face 'egoge-display-time))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; Hook pour chaque langage ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun valrose-white-space () (interactive) (setq-default whitespace-style ;; value empty : remove empty line at beginnig or end of buffer '(face tabs spaces trailing lines space-before-tab newline empty space-after-tab space-mark tab-mark newline-mark) ) (add-hook 'before-save-hook 'whitespace-cleanup) (global-set-key (kbd "C-C w") 'whitespace-mode)) (defun valrose-line-number () (interactive) (display-line-numbers-mode)) (defun valrose-no-tab-for-indent () (setq-default indent-tabs-mode nil)) (defun valrose-comment () (interactive) (global-set-key (kbd "C-C ;") 'comment-or-uncomment-region)) (defun valrose-hs () (interactive) (hs-minor-mode) (global-set-key (kbd "C-C RET") 'hs-toggle-hiding) (setq hs-hide-comments-when-hiding-all nil)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; Hook pour chaque langage ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun valrose-c () (interactive) (setq c-basic-offset 4) (setq c-default-style "linux") (valrose-hs) (valrose-comment) (valrose-line-number) (valrose-white-space) (valrose-no-tab-for-indent)) (add-hook 'c-mode-common-hook (lambda () (valrose-c))) (defun valrose-emacs-lisp () (interactive) (valrose-hs) (valrose-comment) (valrose-white-space) (valrose-no-tab-for-indent)) (add-hook 'emacs-lisp-mode-hook (lambda () (valrose-emacs-lisp))) (defun valrose-python() (interactive) (setq python-shell-interpreter "python3") (setq python-shell-interpreter-args "-i") (setq confirm-kill-processes nil) (valrose-hs) (valrose-comment) (valrose-white-space) (valrose-no-tab-for-indent)) ; (setq hs-hide-comments 0) ; (hs-hide-level 1) ; (global-set-key (kbd "C-C h") 'hs-hide-level) ; (global-set-key (kbd "C-C C-f") 'python-shell-send-defun)) (add-hook 'python-mode-hook 'valrose-python) ;; La suite du fichier correspond au point emacs initial ;; Je ne sais pas dans quelle mesure ces lignes sont pertinentes ;; Dans le doute je les laisse. (setq shell-prompt-pattern "\\w+(.+)[0-9]+:") ;; Shell ;; Liste des tampons (substitute-key-definition 'list-buffers 'electric-buffer-list global-map) ; c'est tellement plus commode ;; Touches ; Pour voir ce qu'envoient les touches: (defun voir-cars () "Affiche les caracteres tapes, se termine apres 3 secondes." (interactive) (let ((caracs "") (inhibit-quit t)) (message "Taper les caracteres, fin apres 3 secondes sans rien.") (while (not (sit-for 3)) (setq caracs (concat caracs (list (read-char)) quit-flag nil))) ; peut etre leve par ^G (message "Caracteres lus: %s" (key-description caracs)))) ;; Saveplace ; (load "saveplace" nil t) ; (setq-default save-place t) ; (define-key ctl-x-map "p" 'toggle-save-place) ;;; Utiliser W3 comme navigateur par defaut (setq browse-url-browser-function 'browse-url-w3) ;;; Additions faites par Emacs lui-même ;; (Custom-set-variables ;; '(display-time-use-mail-icon t) ;; '(default-mime-charset (quote latin-1)) ;; '(auto-save-list-file-prefix nil) ;; '(make-backup-files t) ;; '(mime-button-mouse-face (quote highlight)) ;; '(mime-transfer-level 8 t))