C'est souvent un sujet de discussion intéressant quand on parle des éditeurs qu'on utilise. Il y a une grande rivalité (
amicale ou pas) entre ceux qui utilisent
emacs et ceux qui utilisent
vi (qui d'ailleurs utilisent plus souvent
vim parce que bon ne pas pouvoir se déplacer avec les flèches en mode édition, c'est quand même pénible) :
Une boutade dit que les guerres d'éditeurs sont comparables aux guerres de religion, mais en plus passionné.
Il en existe bien sûr d'autres, même si je ne comprends toujours pas pourquoi des gens utilisent encore
gedit :-p et même si j'entends parler de plus en plus de
sublime text, je n'ai pas encore été suffisamment séduit pour penser à changer (sans considérer qu'il a une licence propriétaire...).
Il y a quelques temps de cela j'utilisais à la fois vi (vim) et emacs. La raison était simple quand j'avais besoin d'ouvrir un fichier pour faire une petite modification, j'utilisais vi sinon j'utilisais emacs. Oui il faut bien le dire, emacs à l'ouverture, c'est un peu plus long que vi. Sauf que tout ça c'était avant que je ne découvre l'option -nw (no window) d'emacs qui m'a complètement fait abandonner vi.
Pour savoir combien de temps met emacs pour démarrer, il suffit d'exécuter :
M-x emacs-init-time (Alt-x qui ouvre le mini-buffer en bas)
Sur mon vieux pc (trans)portable, si j'ouvre un fichier, emacs s'exécute en 1,9 ou 2 secondes ce qui est très rapide par rapport à la plupart des autres éditeurs en mode graphique (style gedit, kate). Par contre quand j'ouvre emacs dans un terminal (-nw), il s'exécute en 0,1 seconde, presque aussi rapidement qu'avec vi. Du coup, ben j'ai délaissé vi...
Ce que j'aime dans emacs, c'est qu'on peut faire ce qu'on veut et pratiquement tout. Le problème qui en découle c'est que c'est parfois très long à paramétrer (vive le langage
lisp).
Heureusement, la communauté est là pour proposer toujours des solutions à nos problèmes. Alors, c'est vrai que sublime text semble faire plein de trucs chouettes par défaut, mais je n'ai pas vu de choses que ne pouvait pas faire emacs. Je suis ignorant sur le sujet, mais je ne pense pas qu'on puisse paramétrer tout ce qu'on veut, comme on veut avec sublime text. Et une chose est sûre, la communauté autour d'emacs est beaucoup plus complète, parce qu'emacs fait partie des meubles...
Aussi je vous propose ma petite contribution avec ma configuration
.emacs.d que j'ai partagé sur github comme plusieurs :
Magnars,
Purcell,
etc.
Je l'ai reprise pour l'occasion et je n'ai donc inclus que les choses récentes dont je me suis servi (html, js, css, php). Je l'ai voulu simple mais fonctionnelle, car les gens ont souvent des configurations de la mort qui tue et c'est pas facile de comprendre tout ce qui se passe.
L'interface graphique est réduite au minimum, mais comme je vous l'ai dit vous faites comme vous voulez. J'utilise beaucoup de raccourcis et n'ai donc plus besoin du menu. Mais si besoin je fais C-<F10> (Ctrl+F10) et il apparaît.
Je peux modifier une variable dans tout le document facilement (M-* (Alt+*) pour sélectionner le mot sur lequel je me trouve (si je veux prendre le mot d'après je refais M-*) puis C-* (Ctrl+*) pour sélectionner toutes les occurrences de la sélection dans le document (je peux aussi sélectionner certaines occurrences situées avant ou après la sélection courante avec M-+ ou M-=) ensuite je tape le nouveau mot et toutes les occurrences sélectionnées sont remplacées.
Je peux me déplacer dans tout l'écran sans utiliser la souris grâce à
Ace Jump. Pour voir comment cela fonctionne, regardez cette
démo.
Je peux utiliser la sélection rectangulaire verticale :
démo. Plein d'autres exemples d'utilisation sur
emacs rocks. Vous trouverez d'ailleurs des exemples qui ont pour but de taquiner
Vim Golf (un site qui propose des petits défis à réaliser en un minimum de touches).
Je peux transformer l'écriture d'une variable CamelCase en pas camel_case : TestTest -> test_test -> TestTest (avec M-C : Alt+Shift+c)
Je peux utiliser
ZenCoding
- je tape :
div#header.toto>ul#nav>li.item*5
- ensuite je fais :
C-c C-j <ret> (Ctrl+c, Ctrl+j, entrée)
- et j'obtiens :
<div id="header" class="toto">
<ul id="nav">
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
<li class="item"></li>
</ul>
</div>
Bref plein de trucs chouettes :-)
Mais avec emacs, vous pouvez aussi
lire vos mails,
visionner vos images,
chatter, et plein de choses.
J'ai une utilisation limitée et raisonnable d'emacs, mais il existe des modes très impressionnants comme
org-mode qui permet de gérer votre emploi du temps, votre liste à faire, vos post-it, vos projets, etc. vous pouvez même en faire un
moteur de blog statique. Faut être fou, mais il y en a, je vous laisse admirer, même s'il reste encore quelques modifications à faire :
http://fredtantini.free.fr/sitemap.html
Pour résumé :
vi voit emacs comme : « a great operating system, lacking only a decent editor » (un très bon système d'exploitation auquel il ne manque qu'un bon éditeur de texte).
et
emacs voit vi comme un éditeur qui possède 2 modes : « beep repeatedly » and « break everything » (faire des bips et tout casser).
Pour ceux qui hésitent encore, sachez qu'il existe un
mode vi dans emacs :-p