Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
emacs [Le 22/08/2022, 16:33]
moths-art passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
emacs [Le 18/11/2022, 11:27] (Version actuelle)
dzecniv [Emacs : le couteau Suisse du développeur] une particularité: programmable à la volée
Ligne 1: Ligne 1:
- 
- 
 {{tag>​Xenial programmation éditeur_de_texte IDE}} {{tag>​Xenial programmation éditeur_de_texte IDE}}
  
Ligne 10: Ligne 8:
 **Emacs**, ou Editor MACroS, créé par Richard Stallman est un [[éditeur de texte]] très puissant, extensible et personnalisable. **Emacs**, ou Editor MACroS, créé par Richard Stallman est un [[éditeur de texte]] très puissant, extensible et personnalisable.
  
-Bien que d'​apparence austère ​de prime abord, avec un peu de prise en main, Emacs peut servir d'​environnement de développement pour beaucoup de langages (LaTeX avec l'​extension auctex, python, javascript, html...), de navigateur internet, de client mail, de client IRC, de psychanalyste...+Une de ses particularités est qu'il est programmable entièrement dans son langage d'​extension,​ Emacs Lisp, et que cela se fait à la volée, signifiant qu'on n'a jamais besoin de redémarrer l'​éditeur pour voir les changements.  
 + 
 +Bien que d'​apparence austère, avec un peu de prise en main, Emacs peut servir d'​environnement de développement pour beaucoup de langages (LaTeX avec l'​extension auctex, python, javascript, html...), de navigateur internet, de client mail, de client IRC, de psychanalyste...
  
 {{  :​spacemacs-magit.png?​450 | édition d'un fichier HTML et inspection des logs de git  }} {{  :​spacemacs-magit.png?​450 | édition d'un fichier HTML et inspection des logs de git  }}
Ligne 155: Ligne 155:
 ===== Installer des extensions ===== ===== Installer des extensions =====
  
-Comme tout éditeur qui se respecte, Emacs propose un système d'​extensions (ou bien de paquets, "​package"​ en anglais). C'est comme apt-get ou synaptic pour Ubuntu. Cela permet d'​obtenir de nouvelles fonctionnalités et de personnaliser son usage très facilement. Avant ce système d'​extensions,​ on devait copier-coller les codes des extensions dans sa configuration… imaginez le bazar. Maintenant, même de petites fonctionnalités sont disponibles dans un paquet. ​+Comme tout éditeur qui se respecte, Emacs propose un système d'​extensions (ou bien de paquets, "​package"​ en anglais). C'est comme apt-get ou synaptic pour Ubuntu. Cela permet d'​obtenir de nouvelles fonctionnalités et de personnaliser son usage très facilement. Avant ce système d'​extensions,​ on devait copier-coller les codes des extensions dans sa configuration… imaginez le bazar. Maintenant, même de petites fonctionnalités sont disponibles dans un paquet.
  
 Le système d'​extensions officiel est ''​package.el''​. En fait, avant son apparition on pouvait utiliser ''​el-get''​. Il fonctionne toujours et est complémentaire à ''​package.el'',​ mais nous allons nous intéresser à ce dernier. Le système d'​extensions officiel est ''​package.el''​. En fait, avant son apparition on pouvait utiliser ''​el-get''​. Il fonctionne toujours et est complémentaire à ''​package.el'',​ mais nous allons nous intéresser à ce dernier.
Ligne 198: Ligne 198:
    * [[https://​wikemacs.org/​wiki/​Evil | evil-mode]] est une émulation de vim par dessus Emacs. Eh oui, car certains trouvent l'​édition modale plus pratique ! (En effet, dans vim on peut supprimer une ligne entière avec ''​dd''​ lorsqu'​avec Emacs de base c'est ''​C-a C-k C-k''​).    * [[https://​wikemacs.org/​wiki/​Evil | evil-mode]] est une émulation de vim par dessus Emacs. Eh oui, car certains trouvent l'​édition modale plus pratique ! (En effet, dans vim on peut supprimer une ligne entière avec ''​dd''​ lorsqu'​avec Emacs de base c'est ''​C-a C-k C-k''​).
    * [[ http://​melpa.org/#/​move-text | move-text ]] pour déplacer la ligne ou la région sélectionnée avec ''​M-up''​ et ''​M-down'',​    * [[ http://​melpa.org/#/​move-text | move-text ]] pour déplacer la ligne ou la région sélectionnée avec ''​M-up''​ et ''​M-down'',​
-   * ''​elscreen''​ pour avoir des onglets (mais pas un unique par fenêtre, cela ne vaut pas le coup lorsqu'​on a des dizaines de buffers ouverts),+   * ''​elscreen''​ pour avoir des onglets (mais pas un unique par fenêtre, cela ne vaut pas le coup lorsqu'​on a des dizaines de buffers ouverts), ou [[https://​github.com/​ema2159/​centaur-tabs/​ | centaur-tabs]] pour des onglets plus jolis et plus configurables,
    * Helm pour une interface interactive à tout (c'est un puits sans fond), dans lequel on trouve helm-swoop qui est une sorte de ''​grep''​ sur le buffer courant mais interactif (on voit la sélection modifée selon notre frappe),    * Helm pour une interface interactive à tout (c'est un puits sans fond), dans lequel on trouve helm-swoop qui est une sorte de ''​grep''​ sur le buffer courant mais interactif (on voit la sélection modifée selon notre frappe),
    * ''​mpg123''​ ou emms pour un lecteur de musique et vidéo,    * ''​mpg123''​ ou emms pour un lecteur de musique et vidéo,
    * [[https://​www.djcbsoftware.nl/​code/​mu/​mu4e.html | mu4e ]] pour lire ses mails, ​    * [[https://​www.djcbsoftware.nl/​code/​mu/​mu4e.html | mu4e ]] pour lire ses mails, ​
    * [[https://​melpa.org/#/​flycheck-grammalecte|flycheck-grammalecte]] ajoute le correcteur grammatical dédié à la langue française Grammalecte,​    * [[https://​melpa.org/#/​flycheck-grammalecte|flycheck-grammalecte]] ajoute le correcteur grammatical dédié à la langue française Grammalecte,​
 +   * [[https://​github.com/​joaotavora/​eglot | eglot]], un client pour LSP, le Language Server Protocol (inclus par défaut à partir de Emacs 29),
    * des extensions pour org-mode, pour le navigateur de fichiers Dired, pour des moteurs de blogs, pour skype, des jeux, etc. On peut tout programmer en emacs-lisp !    * des extensions pour org-mode, pour le navigateur de fichiers Dired, pour des moteurs de blogs, pour skype, des jeux, etc. On peut tout programmer en emacs-lisp !
 ===== Commencer avec une configuration complète ===== ===== Commencer avec une configuration complète =====
  
-On admettra que, de base, Emacs peut sembler rêche, et que cela demande un peu de travail pour installer les extensions dont on a besoin pour travailler. Alors si vous débutez, vous devriez au moins essayer une configuration complète que d'​autres ont faite pour vous (on dit des [[https://​wikemacs.org/​wiki/​Starter_Kits | "​starter kits"​]]). ​+On admettra que, de base, Emacs peut sembler rêche, et que cela demande un peu de travail pour installer les extensions dont on a besoin pour travailler. Alors si vous débutez, vous devriez au moins essayer une configuration complète que d'​autres ont faite pour vous (on dit des [[https://​wikemacs.org/​wiki/​Starter_Kits | "​starter kits"​]]).
  
-Une configuration très populaire est [[https://​github.com/​bbatsov/prelude ​emacs-prelude]]. Elle est construite par modules (pour tel language de programmation par exemple) qu'on peut activer et désactiver facilement. Si vous souhaitez construire vous même votre init file, vous pouvez vous en inspirer.+Une configuration très populaire est [[https://​github.com/​doomemacs/doomemacs ​Doom Emacs]]. Elle est construite par modules (pour tel language de programmation par exemple) qu'on peut activer et désactiver facilement. Si vous souhaitez construire vous même votre init file, vous pouvez vous en inspirer.
  
 ===== Org-mode: gérer sa vie dans un fichier texte ===== ===== Org-mode: gérer sa vie dans un fichier texte =====
Ligne 268: Ligne 269:
 (color-theme-gnome2) (color-theme-gnome2)
 </​code>​ </​code>​
-ou comme ceci : +ou comme ceci :
 <code lisp> <code lisp>
 (require '​color-theme) (require '​color-theme)
Ligne 279: Ligne 280:
  
 Copier/​Coller ne marche pas bien sous Ubuntu **entre** Emacs et les autres logiciels (Firefox etc..) Copier/​Coller ne marche pas bien sous Ubuntu **entre** Emacs et les autres logiciels (Firefox etc..)
-(Copier/​coller du type : surligner le texte=copier / bouton du milieu de la souris =coller. ) +(Copier/​coller du type : surligner le texte=copier / bouton du milieu de la souris =coller. )
 Il semblerait que Metacity (serveur graphique par défaut d'​Ubuntu) n'​implémente pas la '​Primary Selection'​ (~clipboard) ou bien que le middle click soit utilisé pour autre chose. Une solution est d'​installer //​parcellite//​. (à débattre) Il semblerait que Metacity (serveur graphique par défaut d'​Ubuntu) n'​implémente pas la '​Primary Selection'​ (~clipboard) ou bien que le middle click soit utilisé pour autre chose. Une solution est d'​installer //​parcellite//​. (à débattre)
 ==== Utilisation à 100% du CPU ==== ==== Utilisation à 100% du CPU ====
Ligne 324: Ligne 325:
   * [[https://​www.emacswiki.org/​emacs/​AUCTeX|Sur AucTeX]]   * [[https://​www.emacswiki.org/​emacs/​AUCTeX|Sur AucTeX]]
   * **(fr)** [[https://​computerz.solutions/​emacs-org-mode/​|Installation & utilisation simple d'​Emacs]] - Plusieurs tutoriels sont disponibles en fin de page.   * **(fr)** [[https://​computerz.solutions/​emacs-org-mode/​|Installation & utilisation simple d'​Emacs]] - Plusieurs tutoriels sont disponibles en fin de page.
 +  * la chaîne [[https://​www.youtube.com/​channel/​UCkRmQ_G_NbdbCQMpALg6UPg | Emacs Rocks]] sur Youtube
  
 ---- ----
  • emacs.1661178813.txt.gz
  • Dernière modification: Le 22/08/2022, 16:33
  • par moths-art