Advertisement
Guest User

whatver

a guest
Nov 12th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.58 KB | None | 0 0
  1. ;;; Add this at the top of the init.el file:
  2. (require 'package)
  3. (add-to-list 'package-archives
  4. '("melpa" . "https://melpa.org/packages/"))
  5. (when (< emacs-major-version 24)
  6. ;; For important compatibility libraries like cl-lib
  7. (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
  8. (package-initialize)
  9. ;; emacs.el --- fichier de configuration d'Emacs
  10.  
  11. ;;; Commentary:
  12. ;; Fichier de configuration d'Emacs (Editeur de texte)
  13. ;; Le fichier doit s'appeler ~/.emacs ou ~/.emacs.el
  14. ;; Ensimag 2018.
  15.  
  16. ;; Auteurs :
  17. ;; - Matthieu Moy <Matthieu.Moy@imag.fr>
  18. ;; - Mounié Grégory <Gregory.Mounie@imag.fr>
  19. ;; et l'équipe du Stage Unix de rentrée.
  20.  
  21. ;; Ceci est le fichier de configuration d'Emacs. Il est écrit dans un
  22. ;; langage appelé Emacs-lisp, mais rassurez-vous, vous n'avez pas
  23. ;; besoin de le connaitre pour changer votre configuration.
  24. ;;
  25. ;; Pour contribuer:
  26. ;; https://gitlab.ensimag.fr/emacs/conf
  27. ;;
  28. ;; Tout ce qui est précédé par un point-virgule est un commentaire.
  29.  
  30. ;;; Code:
  31.  
  32. ;; Nécessaire pour pouvoir configurer les packages additionnels
  33. (require 'cl)
  34. (require 'package)
  35. ;; Commenter pour enlever l'archive melpa à la liste des packages
  36. ;; disponibles :
  37. (add-to-list 'package-archives
  38. '("melpa" . "http://stable.melpa.org/packages/") t)
  39. (package-initialize)
  40.  
  41. ;; auto-installation au premier lancement
  42. ;; utiliser l'interface "M-X list-packages" sinon
  43. (defvar ensimag-packages '(magit flycheck rust-mode)
  44. "A list of packages to ensure are installed at launch.")
  45.  
  46. (defun ensimag-packages-installed-p ()
  47. "Check if all packages in `ensimag-packages' are installed."
  48. (every #'package-installed-p ensimag-packages))
  49.  
  50.  
  51. (unless (ensimag-packages-installed-p)
  52. ;; check for new packages (package versions)
  53. (message "%s" "Emacs (Ensimag auto-install) is now refreshing its package database...")
  54. (package-refresh-contents)
  55. (message "%s" " done.")
  56. ;; install the missing packages
  57. (dolist (p ensimag-packages)
  58. (when (not (package-installed-p p))
  59. (package-install p))))
  60.  
  61.  
  62. ;; Vérifications en cours de frappe.
  63. ;; Si besoin, installer flycheck : http://www.flycheck.org/
  64. (when (functionp 'global-flycheck-mode)
  65. (global-flycheck-mode 1)
  66. (push 'python-pylint flycheck-checkers)
  67. )
  68.  
  69. ;; dark theme
  70. (load-theme 'tango-dark)
  71.  
  72. ;; support python
  73. (setq python-indent-def-block-scale 1)
  74.  
  75. ;; support de C
  76. ;; ede et ide
  77. (global-ede-mode)
  78. (setq stack-trace-on-error t)
  79. (electric-pair-mode)
  80. (semantic-mode)
  81. (setq c-default-style "linux")
  82. (setq c-basic-offset 4)
  83. (setq-default tab-width 4)
  84. (require 'semantic)
  85. (setq global-semantic-decoration-mode t)
  86. (setq global-semantic-highlight-func-mode t)
  87. ;(setq global-semantic-idle-completions-mode t nil (semantic/idle))
  88. (setq global-semantic-idle-summary-mode t)
  89. (setq global-semantic-stickyfunc-mode t)
  90. (setq inhibit-startup-screen t)
  91.  
  92.  
  93. ;; Correspondance des parenthèses :
  94. ;; Avec ceci, positionnez le curseur sur une parenthèse ouvrante ou
  95. ;; une parenthèse fermante, Emacs met en couleur la paire de
  96. ;; parenthèses.
  97. (show-paren-mode 1)
  98.  
  99. ;; Afficher les numéros de lignes dans la mode-line (barre du bas de
  100. ;; fenêtre) :
  101. (line-number-mode t)
  102. (column-number-mode t)
  103.  
  104. ;; Faire clignoter l'écran au lieu de faire « beep ». Sympa en salle
  105. ;; machine !
  106. (setq visible-bell t)
  107.  
  108. ;; Pour les curieux ...
  109.  
  110. ;; La suite de ce fichier ne contient que des commentaires ! Ce sont
  111. ;; des suggestions pour vous constituer votre .emacs.el. Décommentez
  112. ;; les lignes de configuration (i.e. supprimer les ";") puis relancez
  113. ;; Emacs pour les activer.
  114.  
  115. ;; Ne pas afficher le message d'accueil
  116. (setq inhibit-splash-screen t)
  117.  
  118. ;; Visionner la région (aka sélection) courante :
  119. ;(transient-mark-mode t)
  120.  
  121. ;; Des raccourcis claviers et une selection comme sous Windows
  122. ;; (C-c/C-x/C-v pour copier coller, ...)
  123. ;(cua-mode 1)
  124. ;; Sauver avec Control-s :
  125. ;(global-set-key [(C s)] 'save-buffer)
  126.  
  127. ;; Correction orthographique :
  128. (ispell-change-dictionary "francais")
  129. ;; Souligner les mots incorrects en mode LaTeX
  130. (add-hook 'latex-mode-hook 'flyspell-mode)
  131.  
  132. ;; Se limiter à des lignes de 80 caractères dans les modes textes (y
  133. ;; compris le mode LaTeX) :
  134. ;; cf. http://www-verimag.imag.fr/~moy/emacs/#autofill
  135. ;(add-hook 'text-mode-hook 'turn-on-auto-fill)
  136.  
  137. ;; Activation de Ido
  138. ;; Change le comportement de la selection de fichiers (C-x C-f)
  139. (require 'ido)
  140. (setq ido-enable-flex-matching t)
  141. (setq ido-everywhere t)
  142. (ido-mode 1)
  143.  
  144.  
  145. ;; Dans la même série : changer le comportement de la complétion.
  146. (icomplete-mode)
  147.  
  148. ;; Pour une interface graphique un peu dépouillée
  149. ;(menu-bar-mode -1)
  150. ;(scroll-bar-mode -1)
  151. ;(tool-bar-mode -1)
  152. ;(blink-cursor-mode -1)
  153.  
  154. ;; Définir des touches pour se déplacer rapidement :
  155. ;; Aller à la parenthèse ouvrante correspondante :
  156. ;(global-set-key [M-right] 'forward-sexp)
  157. ;; Aller à la parenthèse Fermante correspondante :
  158. ;(global-set-key [M-left] 'backward-sexp)
  159.  
  160. ;; pour démarrer un serveur
  161. ;(server-start)
  162.  
  163. ;; Compiler avec M-f9, recompiler (avec la même commande de
  164. ;; compilation) avec f9.
  165. (global-set-key [M-f9] 'compile)
  166. (global-set-key [f9] 'recompile)
  167.  
  168. ;; Se souvenir des derniers fichiers ouverts
  169. ;(setq recentf-menu-path nil)
  170. ;(setq recentf-menu-title "Recentf")
  171. (recentf-mode 1)
  172.  
  173. ;; Un menu pour naviguer entre les fonctions dans un fichier (Python,
  174. ;; Ada, C, ...). On l'ajoute pour tous les modes ayant de la
  175. ;; coloration syntaxique :
  176. ;(defun try-to-add-imenu ()
  177. ; (condition-case nil (imenu-add-to-menubar "Navigation") (error nil)))
  178. ;(add-hook 'font-lock-mode-hook 'try-to-add-imenu)
  179.  
  180.  
  181. ;; et maintenant ?
  182. ;; Si vous avez lu jusqu'ici, vous aurez probablement envie d'aller
  183. ;; plus loin. Commencez-donc par la page EnsiWiki sur le .emacs :
  184. ;; http://ensiwiki.ensimag.fr/index.php/Dot_Emacs
  185.  
  186. ;; footer
  187.  
  188. (provide '.emacs)
  189. ;; emacs.el ends here.
  190. (custom-set-variables
  191. ;; custom-set-variables was added by Custom.
  192. ;; If you edit it by hand, you could mess it up, so be careful.
  193. ;; Your init file should contain only one such instance.
  194. ;; If there is more than one, they won't work right.
  195. '(ansi-color-faces-vector
  196. [default default default italic underline success warning error])
  197. '(ansi-color-names-vector
  198. ["#2e3436" "#a40000" "#4e9a06" "#c4a000" "#204a87" "#5c3566" "#729fcf" "#eeeeec"])
  199. '(custom-enabled-themes (quote (deeper-blue)))
  200. '(package-selected-packages
  201. (quote
  202. (jdee meghanada zone-nyan dad-joke company-jedi company-irony company-irony-c-headers rust-mode flycheck magit))))
  203. (custom-set-faces
  204. ;; custom-set-faces was added by Custom.
  205. ;; If you edit it by hand, you could mess it up, so be careful.
  206. ;; Your init file should contain only one such instance.
  207. ;; If there is more than one, they won't work right.
  208. )
  209.  
  210.  
  211. (ac-config-default)
  212.  
  213. (add-to-list 'load-path
  214. "~/.emacs.d/plugins/yasnippet")
  215. (require 'yasnippet)
  216. (yas-global-mode 1)
  217.  
  218. (add-hook 'after-init-hook 'global-company-mode)
  219.  
  220.  
  221. (require 'meghanada)
  222. (add-hook 'java-mode-hook
  223. (lambda ()
  224. ;; meghanada-mode on
  225. (meghanada-mode t)
  226. ;; enable telemetry
  227. (meghanada-telemetry-enable t)
  228. (flycheck-mode +1)
  229. (setq c-basic-offset 2)
  230. ;; use code format
  231. (add-hook 'before-save-hook 'meghanada-code-beautify-before-save)))
  232. (cond
  233. ((eq system-type 'windows-nt)
  234. (setq meghanada-java-path (expand-file-name "bin/java.exe" (getenv "JAVA_HOME")))
  235. (setq meghanada-maven-path "mvn.cmd"))
  236. (t
  237. (setq meghanada-java-path "java")
  238. (setq meghanada-maven-path "mvn")))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement