diff --git a/.emacs b/.emacs index 2e3cb9ac1938acd70b555837576d4715bfc9c942..b31664b21e01fb6e5c79845814eb9b6eba63c963 100644 --- a/.emacs +++ b/.emacs @@ -12,18 +12,17 @@ ;; Chargement principal (require 'package) +(custom-set-variables '(gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")) ;; Ajout de Melpa (add-to-list 'package-archives - '("melpa" . "https://melpa.org/packages/")) - -;; Add the user-contributed repository -(add-to-list 'package-archives - '("marmalade" . "http://marmalade-repo.org/packages/")) - -;; MAJ plus réactives de org à la source (+ dangereux ?) -(add-to-list 'package-archives - '("org" . "http://orgmode.org/elpa/") t) + '( + ("gnu" . "https://elpa.gnu.org/packages/") + ("melpa" . "https://melpa.org/packages/") + ("nongnu" . "https://elpa.nongnu.org/nongnu/") + (";TODO: romey" . "http://tromey.com/elpa/") + ) + ) ;; Dépôt alternatif (utile ?) ;; (add-to-list 'package-archives @@ -57,9 +56,13 @@ '( "/home/phil/.lisp/" "/home/phil/.lisp/emacs-solargraph/" + "/home/phil/.lisp/Emacs-langtool/" + "/home/phil/.lisp/emacs-everywhere//" ) load-path)) +;; (require 'emacs-everywhere) + ;; On personnalise la barre de titre (setq frame-title-format (list "Emacs (" (getenv "USER") ") : %b")) @@ -157,9 +160,9 @@ (setq compilation-window-height 20) ;; Pour mon clavier KB-522 qui ne réagit pas à certaines -;; combinaisons de touches -(global-set-key (kbd "M-]") 'delete-horizontal-space) -(global-set-key (kbd "C-M-]") 'indent-region) +;; combinaisons de touches - Edit : nouvelle config pour mx keys +(global-set-key (kbd "M-ç") 'delete-horizontal-space) +(global-set-key (kbd "C-M-ç") 'indent-region) ;; ========================== ;; Configurations de packages @@ -532,19 +535,63 @@ :ensure t :commands lsp-treemacs-errors-list) -(use-package rg - :ensure t - :bind(("C-c s" . rg-menu))) +;; (use-package rg +;; :ensure t +;; :bind(("C-c s" . rg-menu))) + +;; Pour languagetool +;; (sudo snap install languagetool) +(setq langtool-language-tool-jar "/snap/languagetool/34/usr/bin/languagetool-commandline.jar") +(require 'langtool) +(global-set-key (kbd "C-&") 'langtool-check-buffer) ;; Pour grammalecte -(use-package flycheck-grammalecte - :ensure t - :config - (setq flycheck-grammalecte-enabled-modes - '(mail-mode)) - (setq flycheck-grammalecte-report-apos nil) - (setq flycheck-grammalecte-report-esp nil) - (setq flycheck-grammalecte-report-nbsp nil)) + +;; (use-package flycheck-grammalecte +;; :hook (fountain-mode . flycheck-mode) +;; :init +;; (setq flycheck-grammalecte-report-apos nil +;; flycheck-grammalecte-report-esp nil +;; flycheck-grammalecte-report-nbsp nil) +;; :config +;; (add-to-list 'flycheck-grammalecte-enabled-modes 'fountain-mode) +;; (grammalecte-download-grammalecte) +;; (flycheck-grammalecte-setup)) + +;; (use-package flycheck-grammalecte +;; :ensure t +;; :hook (text-mode . flycheck-mode) +;; :init +;; (setq flycheck-grammalecte-report-apos nil +;; flycheck-grammalecte-report-esp nil +;; flycheck-grammalecte-report-nbsp nil) +;; :config +;; (grammalecte-download-grammalecte) +;; (flycheck-grammalecte-setup)) + + +;; (setq flycheck-grammalecte-report-apos nil) +;; (setq flycheck-grammalecte-report-esp nil) +;; (setq flycheck-grammalecte-report-nbsp nil) +;; (load-file "~/.emacs.d/flycheck-grammalecte/grammalecte.el") + +;; (load-file "~/.emacs.d/flycheck-grammalecte/flycheck-grammalecte.el") + +;; ;; (require 'flycheck-grammalecte) +;; (flycheck-grammalecte-setup) + + ;; (setq flycheck-grammalecte-enabled-modes + ;; '(mail-mode)) + +;; (load-file "~/.emacs.d/flycheck-grammalecte/flycheck-grammalecte.el") +;; (flycheck-grammalecte-setup) +;; (setq flycheck-grammalecte-report-apos nil) +;; (setq flycheck-grammalecte-report-esp nil) +;; (setq flycheck-grammalecte-report-nbsp nil) +;; (add-to-list 'flycheck-grammalecte-enabled-modes 'mail-mode)) +;; (flycheck-grammalecte-setup)) +;; (load-file "~/.emacs.d/flycheck-grammalecte/flycheck-grammalecte.elc") +;; (flycheck-grammalecte-setup) ;; Pour JS (use-package js2-mode @@ -618,7 +665,7 @@ (use-package ox-reveal :ensure t :config - (setq org-reveal-root "file:///home/dosch/divers/presentation/reveal.js")) + (setq org-reveal-root "file:///home/phil/divers/presentation/reveal.js")) ;; Pour function-arg (complétion et vérifciation en C/C++) (use-package function-args @@ -632,6 +679,13 @@ :config (edit-server-start)) +;; emmet, les complétions pour le Web (HTML/CSS) +;; (C-j pour l'expand) +(use-package emmet-mode + :ensure t + :config + (add-hook 'web-mode-hook 'emmet-mode)) + ;; Openwith : utilsation de programmes externe lors de ;; l'ouverture pour certains types de fichiers (use-package openwith @@ -680,9 +734,10 @@ '(imenu-use-popup-menu t) '(package-selected-packages (quote - (js2-refactor org-bullets lsp-treemacs helm-lsp company-lsp lsp-ui lsp-mode gnu-elpa-keyring-update markdown-mode flycheck-clang-analyzer flycheck-grammalecte which-key web-mode undo-tree try smex smartscan smart-mode-line-powerline-theme ruby-refactor ruby-electric robe rainbow-delimiters quelpa-use-package projectile plantuml-mode php-extras pdf-tools ox-reveal nlinum neotree multiple-cursors monokai-theme magit js2-mode irony-eldoc imenu-anywhere iedit ido-vertical-mode highlight-indent-guides helm-swoop helm-orgcard helm-flycheck helm-directory helm-css-scss helm-c-yasnippet helm-anything git-timemachine function-args flx-ido feature-mode expand-region edit-server ecb dumb-jump dired+ dic-lookup-w3m counsel company-web company-tern company-php company-jedi company-irony company-inf-ruby company-c-headers company-auctex clang-format avy auto-yasnippet anzu ac-helm diff-hl request))) + (org rust-mode js2-refactor org-bullets lsp-treemacs helm-lsp company-lsp lsp-ui lsp-mode gnu-elpa-keyring-update markdown-mode flycheck-clang-analyzer flycheck-grammalecte which-key web-mode undo-tree try smex smartscan smart-mode-line-powerline-theme ruby-refactor ruby-electric robe rainbow-delimiters quelpa-use-package projectile plantuml-mode php-extras pdf-tools ox-reveal nlinum neotree multiple-cursors monokai-theme magit js2-mode irony-eldoc imenu-anywhere iedit ido-vertical-mode highlight-indent-guides helm-swoop helm-orgcard helm-flycheck helm-directory helm-css-scss helm-c-yasnippet helm-anything git-timemachine function-args flx-ido feature-mode expand-region edit-server ecb dumb-jump dired+ dic-lookup-w3m counsel company-web company-tern company-php company-jedi company-irony company-inf-ruby company-c-headers company-auctex clang-format avy auto-yasnippet anzu ac-helm diff-hl request))) '(show-paren-mode t) - '(tool-bar-mode nil)) + '(tool-bar-mode nil) + '(tramp-default-method "scpc")) ;; Configuration du style d'affichage (custom-set-faces @@ -762,11 +817,14 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Pour peupler la liste des fichiers .org +;; Pour peupler la liste des fichiers .org (load-library "find-lisp") (setq org-agenda-files (find-lisp-find-files "~/org/" "\.org$")) +;; Ouverture par défaut des fichiers org +(setq org-startup-folded "overview") + ;; Des puces plus sympas (use-package org-bullets :ensure t @@ -816,7 +874,14 @@ ("NEXT" ("WAITING") ("CANCELLED") ("HOLD")) ("DONE" ("WAITING") ("CANCELLED") ("HOLD"))))) -; Pour les notes rapides +;; Pour insérer des templates plus facilement sous orgcard +(require 'org-tempo) +(add-to-list 'org-structure-template-alist '("sh" . "src shell")) +(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp")) +(add-to-list 'org-structure-template-alist '("py" . "src python")) +(add-to-list 'org-structure-template-alist '("rb" . "src ruby")) + +;; Pour les notes rapides (setq org-directory "~/org") (setq org-default-notes-file "~/org/refile.org") @@ -1082,6 +1147,18 @@ (global-set-key "\C-xc" 'comtex) +;; Macro pratique pour éditer les mails + +(fset 'cleanmail + (kmacro-lambda-form [?\C-x ?h delete ?\C-y escape ?<] 0 "%d")) +(fset 'copymail + (kmacro-lambda-form [?\C-x ?h ?\M-w escape ?<] 0 "%d")) +;; (global-set-key (kbd "C-?²" 'cleanmail) +;; (global-set-key [(control ?²)] 'cleanmail) +;; (global-set-key [(control return)] 'compile) +(global-set-key (kbd "<f10>") 'cleanmail) +(global-set-key (kbd "M-<f10>") 'copymail) + ;; Accès direct au répertoire courant avec C-x C-j (require 'dired-x) @@ -1109,7 +1186,7 @@ (global-set-key [(control $)] 'yas-global-mode) ;; Pour dire où est reveal... -(setq org-reveal-root "file:///home/dosch/divers/presentation/reveal.js") +(setq org-reveal-root "file:///home/phil/divers/presentation/reveal.js") ;; Exclude very large buffers from dabbrev (defun sanityinc/dabbrev-friend-buffer (other-buffer) @@ -1180,7 +1257,7 @@ '(lambda () (flycheck-mode 1))) -(global-set-key (kbd "<f10>") 'flycheck-mode) +;; (global-set-key (kbd "<f10>") 'flycheck-mode) ;; Pour discover, le mode qui va bien pour présenter certaines ;; options de commandes comme sous magit @@ -1197,8 +1274,8 @@ (fset 'gitnext [?\M-! ?g ?i ?t ? ?n ?e ?x ?t return]) -(global-set-key (kbd "M-<f10>") 'gitnext) -(global-set-key (kbd "S-<f10>") 'gitprev) +;; (global-set-key (kbd "M-<f10>") 'gitnext) +;; (global-set-key (kbd "S-<f10>") 'gitprev) ;; Pour initialiser PDFtools (test du 26/1/16) ; (pdf-tools-install) @@ -1213,6 +1290,23 @@ ;; (ce qui permet d'ouvrir le nouveau folder à la place de l'ancien) (put 'dired-find-alternate-file 'disabled nil) +;; Pour les quotes de mail trop longues (via insert-kbd-macro) +(defun mailcut () + "Format lines from quoted mails." + (interactive) + (end-of-line) + (kill-line) + (delete-char 1) + (just-one-space) + (end-of-line) + (gin-do-auto-fill)) +;; Au niveau du mapping, c'est un peu tricky. Je n'ai pas trouvé le +;; moyen d'ajouter la touche contrôle, l'idée initiale étant de binder +;; ça sur la touche µ. J'ai récupéré le code dans un buffer dans lequel +;; j'ai exécuté toggle-enable-multibyte-characters (il faut utiliser +;; le code décimal) +(global-set-key [181] 'mailcut) + ;;; .emacs ends here (provide '.emacs)