Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;;; Add this at the top of the init.el file:
- (require 'package)
- (add-to-list 'package-archives
- '("melpa" . "https://melpa.org/packages/"))
- (when (< emacs-major-version 24)
- ;; For important compatibility libraries like cl-lib
- (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
- (package-initialize)
- ;; emacs.el --- fichier de configuration d'Emacs
- ;;; Commentary:
- ;; Fichier de configuration d'Emacs (Editeur de texte)
- ;; Le fichier doit s'appeler ~/.emacs ou ~/.emacs.el
- ;; Ensimag 2018.
- ;; Auteurs :
- ;; - Matthieu Moy <Matthieu.Moy@imag.fr>
- ;; - Mounié Grégory <Gregory.Mounie@imag.fr>
- ;; et l'équipe du Stage Unix de rentrée.
- ;; Ceci est le fichier de configuration d'Emacs. Il est écrit dans un
- ;; langage appelé Emacs-lisp, mais rassurez-vous, vous n'avez pas
- ;; besoin de le connaitre pour changer votre configuration.
- ;;
- ;; Pour contribuer:
- ;; https://gitlab.ensimag.fr/emacs/conf
- ;;
- ;; Tout ce qui est précédé par un point-virgule est un commentaire.
- ;;; Code:
- ;; Nécessaire pour pouvoir configurer les packages additionnels
- (require 'cl)
- (require 'package)
- ;; Commenter pour enlever l'archive melpa à la liste des packages
- ;; disponibles :
- (add-to-list 'package-archives
- '("melpa" . "http://stable.melpa.org/packages/") t)
- (package-initialize)
- ;; auto-installation au premier lancement
- ;; utiliser l'interface "M-X list-packages" sinon
- (defvar ensimag-packages '(magit flycheck rust-mode)
- "A list of packages to ensure are installed at launch.")
- (defun ensimag-packages-installed-p ()
- "Check if all packages in `ensimag-packages' are installed."
- (every #'package-installed-p ensimag-packages))
- (unless (ensimag-packages-installed-p)
- ;; check for new packages (package versions)
- (message "%s" "Emacs (Ensimag auto-install) is now refreshing its package database...")
- (package-refresh-contents)
- (message "%s" " done.")
- ;; install the missing packages
- (dolist (p ensimag-packages)
- (when (not (package-installed-p p))
- (package-install p))))
- ;; Vérifications en cours de frappe.
- ;; Si besoin, installer flycheck : http://www.flycheck.org/
- (when (functionp 'global-flycheck-mode)
- (global-flycheck-mode 1)
- (push 'python-pylint flycheck-checkers)
- )
- ;; dark theme
- (load-theme 'tango-dark)
- ;; support python
- (setq python-indent-def-block-scale 1)
- ;; support de C
- ;; ede et ide
- (global-ede-mode)
- (setq stack-trace-on-error t)
- (electric-pair-mode)
- (semantic-mode)
- (setq c-default-style "linux")
- (setq c-basic-offset 4)
- (setq-default tab-width 4)
- (require 'semantic)
- (setq global-semantic-decoration-mode t)
- (setq global-semantic-highlight-func-mode t)
- ;(setq global-semantic-idle-completions-mode t nil (semantic/idle))
- (setq global-semantic-idle-summary-mode t)
- (setq global-semantic-stickyfunc-mode t)
- (setq inhibit-startup-screen t)
- ;; Correspondance des parenthèses :
- ;; Avec ceci, positionnez le curseur sur une parenthèse ouvrante ou
- ;; une parenthèse fermante, Emacs met en couleur la paire de
- ;; parenthèses.
- (show-paren-mode 1)
- ;; Afficher les numéros de lignes dans la mode-line (barre du bas de
- ;; fenêtre) :
- (line-number-mode t)
- (column-number-mode t)
- ;; Faire clignoter l'écran au lieu de faire « beep ». Sympa en salle
- ;; machine !
- (setq visible-bell t)
- ;; Pour les curieux ...
- ;; La suite de ce fichier ne contient que des commentaires ! Ce sont
- ;; des suggestions pour vous constituer votre .emacs.el. Décommentez
- ;; les lignes de configuration (i.e. supprimer les ";") puis relancez
- ;; Emacs pour les activer.
- ;; Ne pas afficher le message d'accueil
- (setq inhibit-splash-screen t)
- ;; Visionner la région (aka sélection) courante :
- ;(transient-mark-mode t)
- ;; Des raccourcis claviers et une selection comme sous Windows
- ;; (C-c/C-x/C-v pour copier coller, ...)
- ;(cua-mode 1)
- ;; Sauver avec Control-s :
- ;(global-set-key [(C s)] 'save-buffer)
- ;; Correction orthographique :
- (ispell-change-dictionary "francais")
- ;; Souligner les mots incorrects en mode LaTeX
- (add-hook 'latex-mode-hook 'flyspell-mode)
- ;; Se limiter à des lignes de 80 caractères dans les modes textes (y
- ;; compris le mode LaTeX) :
- ;; cf. http://www-verimag.imag.fr/~moy/emacs/#autofill
- ;(add-hook 'text-mode-hook 'turn-on-auto-fill)
- ;; Activation de Ido
- ;; Change le comportement de la selection de fichiers (C-x C-f)
- (require 'ido)
- (setq ido-enable-flex-matching t)
- (setq ido-everywhere t)
- (ido-mode 1)
- ;; Dans la même série : changer le comportement de la complétion.
- (icomplete-mode)
- ;; Pour une interface graphique un peu dépouillée
- ;(menu-bar-mode -1)
- ;(scroll-bar-mode -1)
- ;(tool-bar-mode -1)
- ;(blink-cursor-mode -1)
- ;; Définir des touches pour se déplacer rapidement :
- ;; Aller à la parenthèse ouvrante correspondante :
- ;(global-set-key [M-right] 'forward-sexp)
- ;; Aller à la parenthèse Fermante correspondante :
- ;(global-set-key [M-left] 'backward-sexp)
- ;; pour démarrer un serveur
- ;(server-start)
- ;; Compiler avec M-f9, recompiler (avec la même commande de
- ;; compilation) avec f9.
- (global-set-key [M-f9] 'compile)
- (global-set-key [f9] 'recompile)
- ;; Se souvenir des derniers fichiers ouverts
- ;(setq recentf-menu-path nil)
- ;(setq recentf-menu-title "Recentf")
- (recentf-mode 1)
- ;; Un menu pour naviguer entre les fonctions dans un fichier (Python,
- ;; Ada, C, ...). On l'ajoute pour tous les modes ayant de la
- ;; coloration syntaxique :
- ;(defun try-to-add-imenu ()
- ; (condition-case nil (imenu-add-to-menubar "Navigation") (error nil)))
- ;(add-hook 'font-lock-mode-hook 'try-to-add-imenu)
- ;; et maintenant ?
- ;; Si vous avez lu jusqu'ici, vous aurez probablement envie d'aller
- ;; plus loin. Commencez-donc par la page EnsiWiki sur le .emacs :
- ;; http://ensiwiki.ensimag.fr/index.php/Dot_Emacs
- ;; footer
- (provide '.emacs)
- ;; emacs.el ends here.
- (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.
- '(ansi-color-faces-vector
- [default default default italic underline success warning error])
- '(ansi-color-names-vector
- ["#2e3436" "#a40000" "#4e9a06" "#c4a000" "#204a87" "#5c3566" "#729fcf" "#eeeeec"])
- '(custom-enabled-themes (quote (deeper-blue)))
- '(package-selected-packages
- (quote
- (jdee meghanada zone-nyan dad-joke company-jedi company-irony company-irony-c-headers rust-mode flycheck magit))))
- (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.
- )
- (ac-config-default)
- (add-to-list 'load-path
- "~/.emacs.d/plugins/yasnippet")
- (require 'yasnippet)
- (yas-global-mode 1)
- (add-hook 'after-init-hook 'global-company-mode)
- (require 'meghanada)
- (add-hook 'java-mode-hook
- (lambda ()
- ;; meghanada-mode on
- (meghanada-mode t)
- ;; enable telemetry
- (meghanada-telemetry-enable t)
- (flycheck-mode +1)
- (setq c-basic-offset 2)
- ;; use code format
- (add-hook 'before-save-hook 'meghanada-code-beautify-before-save)))
- (cond
- ((eq system-type 'windows-nt)
- (setq meghanada-java-path (expand-file-name "bin/java.exe" (getenv "JAVA_HOME")))
- (setq meghanada-maven-path "mvn.cmd"))
- (t
- (setq meghanada-java-path "java")
- (setq meghanada-maven-path "mvn")))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement