;; ~/.emacs ;; Emacs initialization file. ;; Font Lock mode, Auto Compression mode, File Name Shadow ;; Mode, and mouse wheel support are enabled by default. ;; Do not display a splash screen on startup (setq inhibit-splash-screen t) ;; Emacs Load Path (setq load-path (cons "/usr/local/share/emacs/site-lisp" load-path)) ;; Affichage du numéro de colonne (setq column-number-mode t) ;; Always end a file with a newline (setq require-final-newline t) ;; Stop at the end of the file, not just add lines (setq next-line-add-newlines nil) ;; Replaces tabs in files with spaces (setq-default indent-tabs-mode nil) ;; Makes the compilation buffer always scrolls to follow ;; output as it comes in. (setq compilation-scroll-output t) ;; Pour avoir les accents (set-keyboard-coding-system 'utf-8) ;; Set up the keyboard so the delete key on both the regular keyboard ;; and the keypad delete the character under the cursor and to the right ;; under X, instead of the default, backspace behavior. (global-set-key [delete] 'delete-char) (global-set-key [kp-delete] 'delete-char) ;; For an unknow reason, the CTRL+RIGHT and RIGHT keys seem ;; to be inveerted... ;; Map RIGHT and LEFT ;;(global-set-key [(meta O) (D)] 'backward-char) ;;(global-set-key [(meta O) (C)] 'forward-char) ;; Map CTRL+RIGHT and CTRL+LEFT (global-set-key [C-right] 'forward-word) (global-set-key [C-left] 'backward-word) ;; Map Home key to beginning-of-buffer (global-set-key "\e[1~" 'beginning-of-buffer) ;; Map End key to end-of-buffer (global-set-key "\e[4~" 'end-of-buffer) ;;=========================================================== ;; Key bindings for compiling programs ;;=========================================================== ;; Must add helper function for the make also, otherwise ;; the first definition caused both F3 and F4 to execute "make clean". (defun compile-make-clean () (interactive) ;; can be called from kbd (compile "make clean")) (defun compile-make () (interactive) (compile "make")) (defun checkpatch() (interactive) (compile (concat "checkpatch.pl --no-tree --emacs --strict --file " (buffer-file-name)))) ;; buffer-cycle.el ;; F1: Switch to previous buffers (autoload 'cycle-buffer-prev "buffer-cycle" t) (global-set-key [f1] 'cycle-buffer-prev) ;; F2: Switch to next buffers (autoload 'cycle-buffer-next "buffer-cycle" t) (global-set-key [f2] 'cycle-buffer-next) ;; F4: make clean (global-set-key [f4] 'compile-make-clean) ;; F5: make (global-set-key [f5] 'compile-make) ;; F6: go to next error (global-set-key [f6] 'next-error) ;; F7: comment region (global-set-key [f7] 'comment-region) ;; F8: code indentation (global-set-key [f8] 'indent-region) ;; F9: run checkpatch.pl (global-set-key [f9] 'checkpatch) ;;================================================== ;; Modes ;;================================================== (defun linux-c-mode () "C mode with adjusted defaults for use with the Linux kernel." (interactive) (c-mode) (c-set-style "K&R") ;; Replaces tabs in files with spaces (setq indent-tabs-mode t) (setq c-basic-offset 8)) (defun csv-mode () "CSV mode." (interactive) (setq indent-tabs-mode t) ) ;; Default for .h and .d files -> linux mode. (add-to-list 'auto-mode-alist '("\.[ch]$" . linux-c-mode)) ;; Verilog mode (autoload 'verilog-mode "verilog-mode" "Verilog mode" t) (add-to-list 'auto-mode-alist '("\\.v\\'" . verilog-mode)) ;; PHP mode (autoload 'php-mode "php-mode" "PHP mode" t) (add-to-list 'auto-mode-alist '("\\.php\\'" . php-mode)) ;; ChordPro mode (autoload 'chordpro-mode "chordpro-mode" "Chordpro mode" t) (add-to-list 'auto-mode-alist '("\\.cp\\'" . chordpro-mode)) (add-to-list 'auto-mode-alist '("\\.chopro\\'" . chordpro-mode)) ;; Lilypond mode (autoload 'LilyPond-mode "lilypond-mode" "LilyPond Editing Mode" t) (add-to-list 'auto-mode-alist '("\\.ly$" . LilyPond-mode)) (add-to-list 'auto-mode-alist '("\\.ily$" . LilyPond-mode)) ;; CSV mode (add-to-list 'auto-mode-alist '("\\.csv$" . csv-mode)) ;; Mutt mode (autoload 'muttrc-mode "muttrc-mode" "Major mode to edit muttrc files" t) (add-to-list 'auto-mode-alist '("muttrc\\'" . muttrc-mode)) ;; When an Emacs init file gets large or has a lot of function definitions, you ;; should consider compiling it: it will load faster when Emacs starts, and its ;; functions will execute faster. ;; Here is a way to automatically compile your InitFile each time you save it: (defun byte-compile-user-init-file () (let ((byte-compile-warnings '(unresolved))) ;; in case compilation fails, don't leave the old .elc around: (when (file-exists-p (concat user-init-file ".elc")) (delete-file (concat user-init-file ".elc"))) (byte-compile-file user-init-file) ;; (message "%s compiled" user-init-file) )) (defun my-emacs-lisp-mode-hook () (when (equal buffer-file-name user-init-file) (add-hook 'after-save-hook 'byte-compile-user-init-file t t))) (add-hook 'emacs-lisp-mode-hook 'my-emacs-lisp-mode-hook) (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(column-number-mode t) '(current-language-environment "UTF-8")) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(default ((t (:background "black" :foreground "white" :bold t)))) '(font-lock-comment-face ((t (:foreground "red" :bold t)))) '(font-lock-constant-face ((t (:foreground "magenta" :bold t)))) '(font-lock-function-name-face ((t (:foreground "blue" :bold t)))) '(font-lock-keyword-face ((t (:foreground "cyan" :bold t)))) '(font-lock-string-face ((t (:foreground "green" :bold t)))) '(font-lock-type-face ((t (:foreground "red" :bold t)))) '(font-lock-variable-name-face ((t (:foreground "yellow" :bold t)))) '(font-lock-warning-face ((t (:foreground "magenta" :bold t)))))