:-y

Mon emacs à moi

vendredi 25 janvier 2013 - 18:32

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

Comments

1 - @ - fred

Pffff, c'est malin… C'est pas juste quelques modifs, qu'il me reste à faire !
Sinon, rien que M-x butterfly ( https://xkcd.com/378/ ) suffit à ce que emacs>vi comme on dit ;)
Merci pour ton partage de .emacs ! Autant le acejump, j'suis pas fan, autant C-* et M-* ça a l'air plutôt intéressant, je testerai sûrement.
Sinon, http://unix.rulez.org/~calver/pictures/curves.jpg est tellement vrai pour moi : j'me dis, tiens, y a certainement moyen de faire ça plus simplement, et généralement, je trouve. Et je trouve d'autres choses superchouettes, qui me font presque oublier ce que je faisais à l'origine : comme tu dis, y a tellement de choses possibles…
http://www.emacswiki.org/emacs/CategoryHumor a quelques bonnes blagues. Par exemple, pour aider les futurs ex-utilisateurs de vi http://www.emacswiki.org/emacs/ViQuit
http://ars.userfriendly.org/cartoons/?id=20070910 est sympa aussi. Bon, je vais pas faire toute la page, vous avez compris, j'aime emacs :]

2 - @ - fred

J'oubliais, j'adore le principe du C-h t, du je tape une combinaison de touches et en plein milieu je fais C-h
et locate refcard | grep emacs dans une console aussi…
je vais m'arrêter là, je ferai un article quand j'aurai fini de nettoyer le mien…

3 - @ - Tontof

Rhô excellent, je connaissais pas le pouvoir des papillons !
C'est dans le même style des petits jeux, M-x snake, M-x gomoku, M-x hanoi, etc. et le célèbre docteur M-x doctor :-)

4 - @ - fred

Pfff, t'oublies le principal : M-x tetris !!!
New comment







 __        ___  ___      
/  \ |  |   |    |  |  / 
  _/ |\/|   |    |  |_/  
 /   |  |   |    |  | \  
/___ |  | \_/   _|_ |  \