X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=stage5%2Fmisc%2Femacs%2Femacsrc;fp=stage5%2Fmisc%2Femacs%2Femacsrc;h=9db7a0eb64e5c9d71da156366b917bf471076117;hb=0315072ae3bd307eee71718e1a59f923edcbdaca;hp=0000000000000000000000000000000000000000;hpb=7a56acaf393f8598e6bd8e23ba539d716177afbe;p=hvlinux.git diff --git a/stage5/misc/emacs/emacsrc b/stage5/misc/emacs/emacsrc new file mode 100644 index 0000000..9db7a0e --- /dev/null +++ b/stage5/misc/emacs/emacsrc @@ -0,0 +1,180 @@ +;; ~/.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)))))