Skip to content
Snippets Groups Projects
Select Git revision
  • f867ba0c118904262bc231ef81a5121c3c15d6ca
  • master default
  • irony
3 results

dot-emacs

Name Last commit Last update
snippets
.gitignore
Readme.org
init.el

Installation

L’installation la plus simple de cette configuration se résume à renommer ce répertoire en

~/.emacs.d

Emacs fonctionne plus rapidement lorsqu’il est lancé en mode client (plusieurs client s’attachent à un même serveur). Pour bénéficier de cette optimisation ajouter les alias suivants à votre shell

alias emacs="emacsclient -q -a '' -c"
alias kill-emacs="emacsclient -q -e '(let ((last-nonmenu-event nil))(save-buffers-kill-emacs))'"

Tutoriels de M. Zamansky

Cette configuration d’Emacs est grandement (et librement) inspirée de celle proposée par Mike Zamansky.

Pour une excellente série tutoriels ainsi que la construction pas a pas de configurations, voir ci-dessous

Choix d’interface

Pas d’écran de bienvenue

(setq inhibit-startup-message t)

Augumente la mémoire pour le “garbage collector” => meilleures perfs

(setq gc-cons-threshold 64000000)
(add-hook 'after-init-hook
          #'(lambda ()
              ;; restore after startup
              (setq gc-cons-threshold 800000)))

Pas de toolbar

(tool-bar-mode -1)

Réponses par y ou n

(fset 'yes-or-no-p 'y-or-n-p)

Commentaires

Racourci Description
C-c ; Commente ou décommente une région
(global-set-key (kbd "C-c ;") 'comment-or-uncomment-region)

Affiche aussi le numéro de colone

(setq column-number-mode t)

Désactive l’auto-save

(setq auto-save-default nil)

Auto-fill

Utilise l’auto-fill

(turn-on-auto-fill)

… sauf quand on code

(add-hook 'prog-mode-hook (lambda () (auto-fill-mode -1)))

Supression des blancs inutiles

On retire les blancs qui traînent en fin de ligne à la sauvegarde d’un buffer

(add-hook 'before-save-hook
          (lambda ()
            (when (not (derived-mode-p 'ein:notebook-multilang-mode))
              (delete-trailing-whitespace))))

Affichage de la fonction courante

(which-function-mode t)

Powerline

Un bel affichage pour la barre d’état (mode-line)

(use-package powerline
  :ensure t
  :config (powerline-default-theme))

Try

Permet d’essayer des paquets (sans les installer de manère permanente)

(use-package try
  :ensure t)

Posframe

Affiche des boites de dialogue

(use-package posframe
  :ensure t)

Which key

Aide en ligne pour les raccourci (quelle touche ?)

(use-package which-key
  :ensure t
  :config
  (which-key-mode))

Org mode

Org bullets makes things look pretty

(use-package org
  :ensure t
  :pin org)

(setenv "BROWSER" "firefox")
(use-package org-bullets
  :ensure t
  :config
  (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
(custom-set-variables
 '(org-default-notes-file (concat org-directory "/notes.org"))
 '(org-export-html-postamble nil)
 '(org-hide-leading-stars t)
 '(org-startup-folded (quote overview))
 '(org-startup-indented t)
 '(org-confirm-babel-evaluate nil)
 '(org-src-fontify-natively t)
 )

(setq org-file-apps
      (append '(
                ("\\.pdf\\'" . "evince %s")
                ("\\.x?html?\\'" . "/usr/bin/firefox %s")
                ) org-file-apps ))

(global-set-key "\C-ca" 'org-agenda)
(setq org-agenda-start-on-weekday nil)
(setq org-agenda-custom-commands
      '(("c" "Simple agenda view"
         ((agenda "")
          (alltodo "")))))

(global-set-key (kbd "C-c c") 'org-capture)

(defun make-capture-frame ()
  "Create a new frame and run org-capture."
  (interactive)
  (make-frame '((name . "capture")))
  (select-frame-by-name "capture")
  (delete-other-windows)
  (noflet ((switch-to-buffer-other-window (buf) (switch-to-buffer buf)))
          (org-capture)))

(define-key org-mode-map (kbd "C-c >") (lambda () (interactive (org-time-stamp-inactive))))

(use-package htmlize :ensure t)

(setq org-ditaa-jar-path "/usr/share/ditaa/ditaa.jar")

Ace windows

Permet de changer facilement de fenêtre

(use-package ace-window
  :ensure t
  :init
  (progn
    (setq aw-scope 'global) ;; was frame
    (global-set-key (kbd "C-x O") 'other-frame)
    (global-set-key [remap other-window] 'ace-window)
    (custom-set-faces
     '(aw-leading-char-face
       ((t (:inherit ace-jump-face-foreground :height 3.0)))))
    ))

Ivy / Counsel

Interface de complétion

(use-package counsel
  :ensure t
  :bind
  (("M-y" . counsel-yank-pop)
   :map ivy-minibuffer-map
   ("M-y" . ivy-next-line)))

(use-package ivy
  :ensure t
  :diminish (ivy-mode)
  :bind (("C-x b" . ivy-switch-buffer))
  :config
  (ivy-mode 1)
  (setq ivy-use-virtual-buffers t)
  (setq ivy-count-format "%d/%d ")
  (setq ivy-display-style 'fancy))

Swiper

Améliore la recherche incrémentale

(use-package swiper
:ensure t
:bind (("C-s" . swiper-isearch)
	 ("C-r" . swiper-isearch)
	 ("C-c C-r" . ivy-resume)
	 ("M-x" . counsel-M-x)
	 ("C-x C-f" . counsel-find-file))
:config
(progn
  (ivy-mode 1)
  (setq ivy-use-virtual-buffers t)
  (setq ivy-display-style 'fancy)
  (define-key read-expression-map (kbd "C-r") 'counsel-expression-history)
  ))

Avy

Saute très rapidement vers la zone de text contenant une lettre

(use-package avy
  :ensure t
  :bind ("M-s" . avy-goto-word-1))

Company

Boites de dialogue pour la complétion

(use-package company
  :ensure t
  :config
  (setq company-idle-delay 0)
  (setq company-minimum-prefix-length 3)

  (global-company-mode t))

(defun my/python-mode-hook ()
  (add-to-list 'company-backends 'company-jedi))

(add-hook 'python-mode-hook 'my/python-mode-hook)
(use-package company-jedi
  :ensure t
  :config
  (add-hook 'python-mode-hook 'jedi:setup)
  )

(defun my/python-mode-hook ()
  (add-to-list 'company-backends 'company-jedi))

(add-hook 'python-mode-hook 'my/python-mode-hook)

C++

Transforme Emacs en un véritable IDE en utilisant Irony

On branche Irony à Company

(use-package company-irony
  :ensure t
  :config
  (add-to-list 'company-backends 'company-irony))

On active Irony pour le C++

(use-package irony
  :ensure t
  :config
  (add-hook 'c++-mode-hook 'irony-mode)
  (add-hook 'c-mode-hook 'irony-mode)
  (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options))

Eldoc / Irony

Affiche la documentation des objets/functions dans le minibuffer

(use-package irony-eldoc
  :ensure t
  :config
  (add-hook 'irony-mode-hook #'irony-eldoc))

Formatage automatique : clang-format

Création d’un racourci spécial pour formater une zone

(use-package clang-format
  :ensure t
  :bind
  (("C-c C-f" . clang-format-region)))

Remplace l’indentation classique d’Emacs par clang-format en C/C++

(defun clang-format-c-mode-common-hook ()
  (fset 'c-indent-region 'clang-format-region)
  (define-key c-mode-base-map (kbd "<tab>") 'clang-format-region))
(add-hook 'c-mode-common-hook 'clang-format-c-mode-common-hook)

Force le formatage du fichier quand il est sauvgardé

(defun clang-format-buffer-on-save ()
  "Add auto-save hook for clang-format-buffer-smart."
  (add-hook 'before-save-hook 'clang-format-buffer nil t))
(add-hook 'c-mode-common-hook 'clang-format-buffer-on-save)

Coloration syntaxique (C++ moderne)

(use-package modern-cpp-font-lock
  :ensure t
  :init
  (eval-when-compile
    ;; Silence missing function warnings
    (declare-function modern-c++-font-lock-global-mode
                      "modern-cpp-font-lock.el"))
  :config (modern-c++-font-lock-global-mode t))

Themes

Préchargement de quelques themes

(use-package cloud-theme :ensure t)
(use-package zenburn-theme :ensure t)
(use-package sourcerer-theme :ensure t)
(use-package monokai-theme :ensure t)
(use-package gruvbox-theme :ensure t)
(use-package bubbleberry-theme :ensure t)
(use-package solarized-theme :ensure t)

Chargement d’un theme

(load-theme 'sourcerer t)

Modeline

Augmente la taille de la police

(defvar my-font-size 140)

Taille de la Modeline

(set-face-attribute 'mode-line nil  :height my-font-size)

Taille du titre

(set-face-attribute 'header-line nil  :height my-font-size)

Taille des attributs

(set-face-attribute 'default nil :height my-font-size)

Taille de la fenêtre et position

(setq default-frame-alist
      '((top . 0) (left . 0) ;; position
        (width . 110) (height . 90) ;; size
        ))

Parenthèses arc-en-ciel

Améliore le visuel des parenthèses

(use-package rainbow-delimiters
  :ensure t
  :init
  (eval-when-compile
    ;; Silence missing function warnings
    (declare-function rainbow-delimiters-mode "rainbow-delimiters.el"))
  (add-hook 'prog-mode-hook #'rainbow-delimiters-mode))

Flycheck

On branche flycheck à Irony

(use-package flycheck-irony
  :ensure t
  :config
  (eval-after-load 'flycheck
    '(add-hook 'flycheck-mode-hook #'flycheck-irony-setup)))

On charge flycheck

(use-package flycheck
  :ensure t
  :init
  (global-flycheck-mode t))

Active flycheck globalement

(add-hook 'after-init-hook #'global-flycheck-mode)

Python

Attention pour que la configuration fonctionne, il faut installer virtualenv. Pour les systèmes Debian

apt install virtualenv
(setq py-python-command "python3")
(setq python-shell-interpreter "python3")

(use-package elpy
  :ensure t
  :custom (elpy-rpc-backend "jedi")
  :config
  (elpy-enable))

(use-package virtualenvwrapper
  :ensure t
  :config
  (venv-initialize-interactive-shells)
  (venv-initialize-eshell))

YaSnippet

Le système de templates pour Emacs

(use-package yasnippet
  :ensure t
  :init (yas-global-mode 1))

(use-package yasnippet-snippets
  :ensure t)

Divers paquets

Highlight line

Mise en valeur de la ligne courante

(global-hl-line-mode t)

Beacon

Flash de la ligne aux changements de page ou de buffer

(use-package beacon
  :ensure t
  :config
  (beacon-mode 1))

hungry-delete

Suppression de tous les blancs quand appuie sur backspace ou delete

(use-package hungry-delete
  :ensure t
  :config
  (global-hungry-delete-mode))

Multiple-cursors

Permet l’utilisation de plusieurs curseurs simultanément

(use-package multiple-cursors
  :ensure t)

Expand-region

Sélectionne une zone de manière incrémentale. mot, phrase, paragraphe, etc de manière intelligente.

(use-package expand-region
  :ensure t
  :config
  (global-set-key (kbd "C-=") 'er/expand-region))

Meilleure gestion du kill-ring

(setq save-interprogram-paste-before-kill t)

Gestion de la restauration des buffers

(global-auto-revert-mode 1)
(setq auto-revert-verbose nil)
(global-set-key (kbd "<f5>") 'revert-buffer)

iedit

Modifie les copies d’une zone séléctionnée simultanément

Racourci Description
C-h C-; démarrer les modifications
M-ESC ESC sortir du mode
(use-package iedit
  :ensure t)

Narrow/widen dwim

Réduit/agrandit une zone d’édition de manière intelligente

(defun narrow-or-widen-dwim (p)
  "If the buffer is narrowed, it widens. Otherwise, it narrows intelligently.
Intelligently means: region, org-src-block, org-subtree, or defun,
whichever applies first.
Narrowing to org-src-block actually calls `org-edit-src-code'.

With prefix P, don't widen, just narrow even if buffer is already
narrowed."
  (interactive "P")
  (declare (interactive-only))
  (cond ((and (buffer-narrowed-p) (not p)) (widen))
        ((region-active-p)
         (narrow-to-region (region-beginning) (region-end)))
        ((derived-mode-p 'org-mode)
         ;; `org-edit-src-code' is not a real narrowing command.
         ;; Remove this first conditional if you don't want it.
         (cond ((ignore-errors (org-edit-src-code))
                (delete-other-windows))
               ((org-at-block-p)
                (org-narrow-to-block))
               (t (org-narrow-to-subtree))))
        (t (narrow-to-defun))))

Remplace la fonction Emacs standard par dwim

(define-key ctl-x-map "n" #'narrow-or-widen-dwim)

Web Mode

Mode avancé pour l’édition de pages html, CSS,…

(use-package web-mode
  :ensure t
  :config
  (add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
  (add-to-list 'auto-mode-alist '("\\.vue?\\'" . web-mode))
  (setq web-mode-engines-alist
        '(("django"    . "\\.html\\'")))
  (setq web-mode-ac-sources-alist
        '(("css" . (ac-source-css-property))
          ("vue" . (ac-source-words-in-buffer ac-source-abbrev))
          ("html" . (ac-source-words-in-buffer ac-source-abbrev))))
  (setq web-mode-enable-auto-closing t))
(setq web-mode-enable-auto-quoting t) ; this fixes the quote problem I mentioned

Emmet mode

Ensemble de fonctions permettant l’édition rapide de markup languages (html,sgml,…)

(use-package emmet-mode
  :ensure t
  :config
  ;; Auto-start on any markup modes
  (add-hook 'sgml-mode-hook 'emmet-mode)
  ;; Auto-start on any markup modes
  (add-hook 'web-mode-hook  'emmet-mode)
  ;; enable Emmet's css abbreviation
  (add-hook 'css-mode-hook  'emmet-mode))

DIRED

Permet d’utiliser reduire/agrandir les affichages de répertoires

(setq dired-dwim-target t)

(use-package dired-narrow
  :ensure t
  :config
  (bind-key "C-c C-n" #'dired-narrow)
  (bind-key "C-c C-f" #'dired-narrow-fuzzy)
  (bind-key "C-x C-N" #'dired-narrow-regexp))

(use-package dired-subtree :ensure t
  :after dired
  :config
  (bind-key "<tab>" #'dired-subtree-toggle dired-mode-map)
  (bind-key "<backtab>" #'dired-subtree-cycle dired-mode-map))

LaTeX

Configuration LaTeX basique.

(use-package tex
  :ensure auctex)

(defun tex-view ()
  (interactive)
  (tex-send-command "evince" (tex-append tex-print-file ".pdf")))

Gestion de projets

(use-package projectile
  :ensure t
  :bind ("C-c p" . projectile-command-map)
  :config
  (projectile-mode)
  (setq projectile-completion-system 'ivy))

Org mode (langages suportés)

Charge les langages disponnibles pour org-mode

(org-babel-do-load-languages
 'org-babel-load-languages
 '((python . t)
   (emacs-lisp . t)
   (shell . t)
   (C . t)
   (js . t)
   (ditaa . t)
   (dot . t)
   (org . t)
   (latex . t )))

Parenthèses

(use-package smartparens
  :ensure t
  :hook (prog-mode . smartparens-mode)
  :custom
  (sp-escape-quotes-after-insert nil)
  :config
  (require 'smartparens-config))

(show-paren-mode t)
(setq show-paren-style 'mixed)

Taille de la police

Change la police dynamiquement

(use-package default-text-scale
  :ensure t
  :config
  (global-set-key (kbd "C-M-=") 'default-text-scale-increase)
  (global-set-key (kbd "C-M--") 'default-text-scale-decrease))

Hydra

Outil de simplification des raccourcis

(use-package hydra
  :ensure hydra
  :init
  (global-set-key
   (kbd "C-x t")
   (defhydra toggle (:color blue)
     "toggle"
     ("a" abbrev-mode "abbrev")
     ("s" flyspell-mode "flyspell")
     ("d" toggle-debug-on-error "debug")
     ("c" fci-mode "fCi")
     ("f" auto-fill-mode "fill")
     ("t" toggle-truncate-lines "truncate")
     ("w" whitespace-mode "whitespace")
     ("q" nil "cancel")))
  (global-set-key
   (kbd "C-x j")
   (defhydra gotoline
     ( :pre (linum-mode 1)
            :post (linum-mode -1))
     "goto"
     ("t" (lambda () (interactive)(move-to-window-line-top-bottom 0)) "top")
     ("b" (lambda () (interactive)(move-to-window-line-top-bottom -1)) "bottom")
     ("m" (lambda () (interactive)(move-to-window-line-top-bottom)) "middle")
     ("e" (lambda () (interactive)(goto-char (point-max))) "end")
     ("c" recenter-top-bottom "recenter")
     ("n" next-line "down")
     ("p" (lambda () (interactive) (forward-line -1))  "up")
     ("g" goto-line "goto-line")
     ))
  (global-set-key
   (kbd "C-c t")
   (defhydra hydra-global-org (:color blue)
     "Org"
     ("t" org-timer-start "Start Timer")
     ("s" org-timer-stop "Stop Timer")
     ("r" org-timer-set-timer "Set Timer") ; This one requires you be in an orgmode doc, as it sets the timer for the header
     ("p" org-timer "Print Timer") ; output timer value to buffer
     ("w" (org-clock-in '(4)) "Clock-In") ; used with (org-clock-persistence-insinuate) (setq org-clock-persist t)
     ("o" org-clock-out "Clock-Out") ; you might also want (setq org-log-note-clock-out t)
     ("j" org-clock-goto "Clock Goto") ; global visit the clocked task
     ("c" org-capture "Capture") ; Don't forget to define the captures you want http://orgmode.org/manual/Capture.html
     ("l" (or )rg-capture-goto-last-stored "Last Capture"))

   ))

(defhydra hydra-multiple-cursors (:hint nil)
  "
 Up^^             Down^^           Miscellaneous           % 2(mc/num-cursors) cursor%s(if (> (mc/num-cursors) 1) \"s\" \"\")
------------------------------------------------------------------
 [_p_]   Next     [_n_]   Next     [_l_] Edit lines  [_0_] Insert numbers
 [_P_]   Skip     [_N_]   Skip     [_a_] Mark all    [_A_] Insert letters
 [_M-p_] Unmark   [_M-n_] Unmark   [_s_] Search
 [Click] Cursor at point       [_q_] Quit"
  ("l" mc/edit-lines :exit t)
  ("a" mc/mark-all-like-this :exit t)
  ("n" mc/mark-next-like-this)
  ("N" mc/skip-to-next-like-this)
  ("M-n" mc/unmark-next-like-this)
  ("p" mc/mark-previous-like-this)
  ("P" mc/skip-to-previous-like-this)
  ("M-p" mc/unmark-previous-like-this)
  ("s" mc/mark-all-in-region-regexp :exit t)
  ("0" mc/insert-numbers :exit t)
  ("A" mc/insert-letters :exit t)
  ("<mouse-1>" mc/add-cursor-on-click)
  ;; Help with click recognition in this hydra
  ("<down-mouse-1>" ignore)
  ("<drag-mouse-1>" ignore)
  ("q" nil)

  ("<mouse-1>" mc/add-cursor-on-click)
  ("<down-mouse-1>" ignore)
  ("<drag-mouse-1>" ignore))

Modes git

Le sublime Magit

(use-package magit
  :ensure t
  :init
  (progn (bind-key "C-x g" 'magit-status)))

Affiche l’état git dans la marge

(setq magit-status-margin
      '(nil "%Y-%m-%d %H:%M " magit-log-margin-width t 18))

Utilise git-gutter avec hydra

(use-package git-gutter
  :ensure t
  :init
  (global-git-gutter-mode +1))

(global-set-key (kbd "M-g M-g") 'hydra-git-gutter/body)

(use-package git-timemachine
  :ensure t)
(defhydra hydra-git-gutter (:body-pre (git-gutter-mode 1)
                                      :hint nil)
  "
Git gutter:
  _j_: next hunk        _s_tage hunk     _q_uit
  _k_: previous hunk    _r_evert hunk    _Q_uit and deactivate git-gutter
  ^ ^                   _p_opup hunk
  _h_: first hunk
  _l_: last hunk        set start _R_evision
"
  ("j" git-gutter:next-hunk)
  ("k" git-gutter:previous-hunk)
  ("h" (progn (goto-char (point-min))
              (git-gutter:next-hunk 1)))
  ("l" (progn (goto-char (point-min))
              (git-gutter:previous-hunk 1)))
  ("s" git-gutter:stage-hunk)
  ("r" git-gutter:revert-hunk)
  ("p" git-gutter:popup-hunk)
  ("R" git-gutter:set-start-revision)
  ("q" nil :color blue)
  ("Q" (progn (git-gutter-mode -1)
              ;; git-gutter-fringe doesn't seem to
              ;; clear the markup right away
              (sit-for 0.1)
              (git-gutter-mode))
   :color blue))

Flyspell

(add-hook 'org-mode-hook 'turn-on-flyspell)
(add-hook 'org-mode-hook 'turn-on-auto-fill)
(add-hook 'mu4e-compose-mode-hook 'turn-on-flyspell)
(add-hook 'mu4e-compose-mode-hook 'turn-on-auto-fill)

C++

Activation des ggtags

(use-package ggtags
  :ensure t
  :config
  (add-hook 'c-mode-common-hook
            (lambda ()
              (when (derived-mode-p 'c-mode 'c++-mode 'java-mode)
                (ggtags-mode 1)))))

Cmake

(use-package cmake-mode
  :ensure t
  :mode ("CMakeLists.txt" ".cmake")
  :hook (cmake-mode . (lambda ()
                        (add-to-list 'company-backends 'company-cmake)))
  :config
  (use-package cmake-font-lock
    :ensure t
    :defer t
    :commands (cmake-font-lock-activate)
    :hook (cmake-mode . (lambda ()
                          (cmake-font-lock-activate)
                          (font-lock-add-keywords
                           nil '(("\\<\\(FIXME\\|TODO\\|BUG\\|DONE\\)"
                                  1 font-lock-warning-face t)))
                          ))
    ))

Markdown

(use-package markdown-mode
  :ensure t
  :mode (".md" ".markdown"))

Dumb jump

Permet de se déplacer très rapidement dans un texte

(use-package dumb-jump
  :bind (("M-g o" . dumb-jump-go-other-window)
         ("M-g j" . dumb-jump-go)
         ("M-g x" . dumb-jump-go-prefer-external)
         ("M-g z" . dumb-jump-go-prefer-external-other-window))
  :init
  (dumb-jump-mode)
  :ensure t)

Origami

Mode permettant le pliage (folding) de regions

(use-package origami
  :ensure t)

IBuffer

Un meilleur gestionnaire de buffers.

(global-set-key (kbd "C-x C-b") 'ibuffer)
(setq ibuffer-saved-filter-groups
      (quote (("default"
               ("dired" (mode . dired-mode))
               ("org" (name . "^.*org$"))
               ("magit" (mode . magit-mode))
               ("IRC" (or (mode . circe-channel-mode)
                          (mode . circe-server-mode)))
               ("web" (or (mode . web-mode) (mode . js2-mode)))
               ("shell" (or (mode . eshell-mode) (mode . shell-mode)))
               ("mu4e" (or (mode . mu4e-compose-mode)
                           (name . "\\*mu4e\\*")))
               ("programming" (or (mode . clojure-mode)
                                  (mode . clojurescript-mode)
                                  (mode . python-mode)
                                  (mode . c++-mode)))
               ("emacs" (or (name . "^\\*scratch\\*$")
                            (name . "^\\*Messages\\*$")))
               ))))
(add-hook 'ibuffer-mode-hook
          (lambda ()
            (ibuffer-auto-mode 1)
            (ibuffer-switch-to-saved-filter-groups "default")))

;; Don't show filter groups if there are no buffers in that group
(setq ibuffer-show-empty-filter-groups nil)

;; Don't ask for confirmation to delete marked buffers
(setq ibuffer-expert t)

Wgrep

Permet de modifier le résultat d’un grep (donc simultanément dans plusieurs fichiers par exemple).

Commandes de base

Racourci Description
C-c C-p passe en mode écriture dans le buffer résultat de grep
C-c C-e sauve les modifications
C-x C-q quitte le mode

voir wgrep pour plus d’infos.

(use-package wgrep
  :ensure t)
(use-package wgrep-ag
  :ensure t)
(require 'wgrep-ag)

PDF tools

Outils d’édition de PDF dans Emacs

(use-package pdf-tools
  :ensure t)
(use-package org-pdfview
  :ensure t)

AutoYASnippet

Outil de création rapide de snipets. Voir la documentation en ligne https://github.com/abo-abo/auto-yasnippet

(use-package auto-yasnippet
  :ensure t)

Divers

Quelques réglages utilitaires

(setq browse-url-browser-function 'browse-url-generic
      browse-url-generic-program "firefox")
(setq auto-window-vscroll nil)
(blink-cursor-mode t)
(setq default-frame-alist
      '((cursor-color . "DarkGrey")))

Keyfreq

Enregistre la fréquence d’utilisation de commandes. Pour obtenir les statistiques, utiliser la commande M-x keyfreq-show

(use-package keyfreq
  :ensure t
  :config
  (require 'keyfreq)
  (keyfreq-mode 1)
  (keyfreq-autosave-mode 1))

Dictionnaire et césures

(use-package dictionary
  :ensure t)
(use-package synosaurus
  :ensure t)

COMMENT Local Variables: COMMENT ispell-local-dictionary: “francais” COMMENT End: