Emacs is great for prototyping

August 14th, 2008

Split the window as you wish, this allows you to see different files at the same time to rapidly look for the information you need. I found this really useful yesterday when I was stuck on my application model. I needed to have a snapshot of the different classes and objects, when and where to store things in the session, and when to retrieve them etc. This window splitting system comes in handy when you need to do a global refactoring of your code and review the interactions and relations between your various objects.

emacs_split_window1.png

Plusieurs fois, j’ai eu des problèmes avec quelques fichiers qui contenait des caractères bizarre, tels que les accents qui ne sont pas encodés proprement etc.

La seule solution pour moi consistait souvent à parcourir le fichier (parfois plusieurs centaines de lignes) en essayant de trouver les caractères qui ne sont pas bons et les remplacer manuellement. Je me suis dit, si emacs pouvait me retrouver à l’aide d’une regex ces caractères, ça ne serait pas de refus.

Voilà comment je suis devenu heureux :

M-X highlight-regex (entrée)

[^a-z 0-9A-Z\(\)\{\}\=\+\’\|\-\#\”\&\%\$\?\,\.\;\:\*\/\\_$^\[<>\n\-\t(C-q C-j pour insérer un saut de ligne)
!\!-]

(note : il y a sûrement mieux comme regex)

emacs va alors vous prompter pour la “face” que vous voulez utiliser pour ces caractères, en vous proposant hi-yellow par défaut. Perso, j’ai une légère préférence pour hi-blue (et pas hi-blue-b) sur un emacs configuré en blanc sur noir.

Vous pouvez taper la commande précédente avec les raccourcis C-x w h.

Ah, me direz vous, maintenant je ne veux plus que emacs me mets les caractères bizarre dans une autre face. Je veux annuler la commande précédente. Que faire ?

Pas de panique, utilisez sa réciproque M-x unhighlight-regexp (ou C-x w r), qui va d’ailleurs mettre par défaut la dernière regex que vous avez entrée dans highlight-regexp. Si ce n’est pas celle-là mais celle d’avant que vous voulez ne plus mettre en évidence, parcourez l’historique avec les flèches haut et bas de votre clavier.

Merci qui ? merci Richard :)

When I saved my emacs macros to my .emacs file and then tried to load one of them after I restarted emacs, I got the following error : Symbol’s function definition is void: kmacro-exec-ring-item.

Thanks to this link, now I know that you need to add a (require ‘kmacros) to your .emacs in order for macros to work properly, or at least for configurations that are like mine. (Maybe I’m using the kmacro package without knowing it)

If you wish to know a little more  about emacs macros, this out-of-date manual may be a good start.

Bascially :

define a macro : C-x (

when you are finished : C-x )

give it a name : C-x C-k n(ame)

bind it to a key : C-x C-k b(ind)

generate lisp code to save it in .emacs : M-x insert-kbd-macro

The only thing that I miss is how to automagically save the key bindings along with the macro’s definition. This would save me a lot of boring keymapping job every time I wish to use my saved macros.

7.10 et 22

October 27th, 2007

Ce sont les deux nouveaux chiffres d’ajourd’hui : j’ai enfin réussit à installer Gutsy avec les effets de bureaux (compiz-fusion) sur une machine (j’ai enfin une machine chez moi :) ), et, en passant, je dispose maintenant d’un emacs 22.

Ouais, en fait je n’ai plus de machine chez moi depuis un bon bout de temps, quelque chose comme 10 mois, et c’est tant mieux ainsi. Ce n’est pas pour autant que je passe moins de temps à la maison, à ma grande déception, ça n’a pas changé grand chose de ce coté…

Donc là, comme je dois aller chez un client Lundi, on m’a filé un portable au boulot. Un toshiba… Pfff… Je sais pas pourquoi mais je l’aime pas cette marque. Peut-être que le fait qu’on m’ait montré devant mes yeux comment faire sauter le mot de passe au boot de la machine avec un simple accessoire métallique qui se branche sur le port parallèle y a contribué un peu. Peut être aussi le prix de ces machines qui ne justifie absoluement pas la qualité présumée, ou encore la disposition très bizarre des touches du clavier : les touches <> ne sont pas à gauche mais à droite de la barre d’espace, le alt-gr n’est pas à sa place, ni le supprimer et les pg up pg down, home et end. Je suis obligé de regarder le clavier pour trouver ces touches… Enfin, peu importe, heureusement que c’est provisoire. La batterie est morte, le son marche pas et le lecteur CD est bizarre. On va m’acheter une nouvelle machine prochainement. Un Dell… no comment.

Ah oui, j’ai voulu installer Ubuntu dessus parce qu’il n’y avait qu’un windows comme OS. D’abord, j’ai téléchargé au boulot le iso en torrent, histoire de gagner du temps, puis j’ai voulu graver le cd directement avec windows XP. Pouah ! quel humoriste je suis. Le CD n’est pas bootable ! je recommence avec un autre graveur freeware, je me rappel plus du nom… peu importe. Je l’installe tranquillement sur le PC du bureau, mais avec le même CD, j’essaye de l’installer sur le portable toshiba de merde et ça ne marche pas ! Déjà il fallait savoir que c’est sur F12 qu’il fallait appuyer pour avoir le menu de boot (on a à peine le temps de voir une image, qui dure à peu près 1 seconde sans exagérer, que le système est déjà en train de booter, aucune indication sur les touches à appuyer pour configurer le bios ou faire des trucs, rien…). Ensuite, le CD n’est pas reconnu, donc j’ai beau booter dessus et rien à faire.

Solution : soit sortir de chez moi un Samedi pour aller acheter un CD-R et recommence le gravure avec le graveur du toshiba. Ok… Soit j’essaye WUBI, bien qu’il soit encore en Béta. Vous connaissez bien sure la réponse. Finalement c’est pas mal, on a même pas à partitionner le disk et il utilise directement le bootloader de XP.

Pour les effets de bureau c’est marrant 5 minutes mais après j’ai besoin que l’environnement réponde assez rapidement, pas le temps de faire des animations rigolotes quand on veut aller vite. Vous pourrez voir des demos sympa sur youtube, tapez juste compiz-fusion.

Pour emacs 22, je ne sais pas encore ce qu’il apporte de plus, je ne lis jamais les ChangeLog… J’ai du lire quelque part qu’il y a maintenant une interface GTK+ et des modes livrés en standard maintenant, comme le mode python ou le mode W3M.

Dommage, quand les autres me voyaient bosser sur emacs, ils étaient un peu surpris de voir l’interface motif archaique… ça faisait vraiment : ce mec il est bizarre, pour quoi il n’utilise pas eclipse comme tout le monde ? maintenant avec l’interface GTK+, il a l’air légèrement plus moderne. Les gens qui n’utilisent pas les raccourcis claviers ne peuvent pas comprendre pourquoi certains programmeurs préfère travailler avec emacs. Ahhh, je me souviens encore de JJ qui allait presque me donner une tappe sur les mains que j’ai voulu faire défiler l’écran d’emacs en utilisant les touches pgup et pgdown : “non ! pas touche ! c’est ctrl-v et meta-v qu’il faut faire… Voyez comme c’est plus rapide, vos doigts ne bougent pas de leurs places, vous ne perdez pas de temps à déplacer vos doigts du clavier pour aller atteindre les touches pgup et pgdown”. Voilà le secret d’emacs !! on ne bouge carrément pas les doigts du clavier pour l’utiliser. Quand je pense que certains codent en cliquant avec une souris pour appuyer sur un menu et choisir une entrée… Que dire de ceux qui utilisent des IDE comme MS Studio ? je ne pense pas qu’ils utilisent le clavier at all ! :) .

Bon, assez dit ! allez happy coding. J’ai mal aux yeux.

yassine.