tar
et décompression à la volée
A faire...
Il est possible d'écouter des CD audios en utilisant le programme
workbone, qui peut-être interfacé avec Emacs par le
biais d'un petit programme Emacs-Lisp disponible sur
http://inferno.cs.univ-paris8.fr/~drieu/hacks/workbone.el
.
Cette interface s'exécute par le biais de la fonction workbone
(M-x workbone
).
Les commandes sont :
C-x w p
n : joue la piste numéro n
C-x w +
n : augmente le son (nécessite
l'installation du programme volume)
C-x w -
n : diminue le son (nécessite
l'installation du programme volume)
C-x w 9
: exécute la lecture du CD (effectué
automatiquement au démarrage)
C-x w 8
: effectue ou arrête une pause dans la lecture
C-x w 7
: arrête la lecture du CD
C-x w 6
: joue le morceau suivant
C-x w 5
: recommence le morceau courant
C-x w 4
: joue le morceau précédent
C-x w 3
: avance la lecture du morceau de 15 secondes
C-x w 2
: éjecte le CD
C-x w 1
: fait reculer la lecture de 15 secondes
C-x w 0
: quitte le processus sans arrêter la lecture
Norton commander est un logiciel sous DOS permettant de remplacer à peu près un shell. Midnight Commander est un équivalent libre sous Unix de ce logiciel propriétaire. La plupart des opérations offertes par MC sont des opérations de manipulation de fichiers ou de répertoires.
Emacs permet d'effectuer ce type d'opérations par le biais du mode dired. Dired recense tous les fichiers d'un répertoire dans un buffer, et permet d'appliquer des opérations à chacun d'entre eux. La plupart des commandes du mode text sont disponibles dans ce buffer, plus des commandes propres au mode dired.
Dired est invoqué par :
C-x d
, ou par M-x dired
. L'utilisateur doit
spécifier un répertoire à lister.
C-x
C-f
(find-file). Notons qu'Emacs préfère que
l'utilisateur oublie le slash ('/
') final. Si l'utilisateur
l'inclut dans le nom du répertoire, Emacs ne créera pas de
buffer accueillant le mode dired, mais basculera vers un
buffer contenant un fichier se situant dans le répertoire s'il en
existe un.Les opérations sur les fichiers du mode dired se font soit sur le fichier courant (celui sur lequel est le point), soit sur un groupe de fichiers (ce qui nécessite de pouvoir marquer les fichiers sur lesquels les commandes vont agir).
Différentes commandes du mode dired permettent d'effectuer ce marquage :
*
: marque les fichiers exécutables
/
: marque les répertoires
@
: marque les liens symboliques
m
: marque le fichier courant
u
: retire la marque du fichier courant
DEL
: retire la marque du fichier précédent, et
déplace le point sur ce fichier
M-DEL
: supprime les marques de tous les fichiers du
répertoire
% m
regexp : marque tous les fichiers dont le nom
matche une expression régulière
D'autres marques existent (fichier copié, fichier renommé, ...), et la plus utile à manipuler est la marque à effacer :
D
: permet de désigner le fichier courant comme
fichier à effacer
#
: marque les fichiers de sauvegarde automatique
d'Emacs (commençant par un dièse) comme fichiers à
effacer
~
: marque les fichiers de backup d'Emacs
(finissant par un tilde) comme fichiers à effacer
% d
: marque comme à effacer tous les fichiers dont le
nom matche une expression régulière
n
: déplace le point sur le fichier suivant
p
: déplace le point sur le fichier précédent
M-{
: déplace le point sur le fichier marqué précédent
M-}
: déplace le point sur le fichier marqué suivant
L'intérêt du mode dired est d'appliquer des commandes aux fichiers, dont la plupart peuvent remplacer avantageusement les commandes rentrées sous un shell. Toutes les commandes suivantes s'appliquent soit sur le fichier courant (sous le point) si aucun fichier n'est marqué, soit sur tous les fichiers marqués.
!
: demande puis exécute une commande shell
sur les fichiers marqués. Cette commande (par exemple "file
")
est exécutée sur tous les fichiers marqués, un par un, ou alors une
seule fois sur tous les fichiers dans le cas où le caractère *
se
trouve dans la ligne de commande (ex: "display *
")
A
: cherche une expression régulière dans le contenu
du/des fichier(s)
C
: effectue une copie de fichier(s)
D
: efface le(s) fichier(s)
H
: effectue un lien hard (dur)
M
: modifie les permissions
Q
: effectue un remplacement d'expressions régulières
dans le contenu
R
: renomme ou déplace
S
: effectue un lien symbolique
Z
: compresse le(s) fichier(s) avec gzip ou les
décompresse le cas échéant
RET
: ouvre le fichier courant dans un nouveau buffer
v
: ouvre en lecture seule le fichier courant (avec un
mode rappelant un pager)
x
: efface les fichiers marqués comme à effacer
+
: crée un répertoire
^
: exécute dired sur le répertoire parent
s
: bascule entre le tri par date et le tri par nom
q
: fait disparaître le buffer dired
Calendar est une interface permettant de manipuler un calendrier. Elle permet d'afficher un calendrier de trois mois dans un buffer, avec le point sur la date courante.
Parmi les actions possibles :
Le point désigne un jour, et l'utilisateur peut le déplacer à travers le temps par le biais de plusieurs commandes :
M-}
: déplace le point d'un mois dans le futur
M-{
: déplace le point d'un mois dans le passé
C-x ]
: déplace le point d'un an dans le futur
C-x [
: déplace le point d'un an dans le passé
.
: replace le point sur aujourd'hui
h
: affiche tout jour férié connu pour cette date
x
: affiche les jours fériés sur le calendrier
u
: désactive l'affichage des jours fériés sur le
calendrier
a
: affiche les vacances des trois mois visibles dans un
autre buffer
Diary est une interface permettant de gérer un agenda sous Emacs. Il s'utilise de concert avec Calendar qui permet d'insérer des entrées dans l'agenda pour des jours précis.
Le principe est qu'un fichier (dont le nom est renseigné par la
variable diary-file
) contient des entrées dans un format qui lui
est propre (documenté dans le manuel Emacs). Des commandes
permettent d'insérer des entrées dans l'agenda au format Diary à
partir du buffer *Calendar*.
Parmi celles-ci :
d
: affiche toutes les entrées de l'agenda valides pour
cette journée
s
: affiche toutes les entrées de l'agenda
i d
: ajoute une entrée pour la journée sélectionnée (sous
le point)
i w
: ajoute une entrée pour le jour de la semaine
sélectionné (ex: tous les mercredis, soirée gothique au piano
vache)
i m
: ajoute une entrée pour le jour du mois sélectionné
(ex: acheter carte orange tous les 1er du mois)
i y
: ajoute une entrée pour le jour de l'année
sélectionné (ex: tous les 1er avril)
i b
: ajoute une entrée pour une période. L'utilisateur
marque une date (C-SPC
) puis déplace le curseur sur une autre
date. La période entière sera ajoutée dans l'agenda (ex: du 29
juillet au 14 août, randonnée dans le pays Basque)
i c
: ajoute une entrée cyclique dans l'agenda.
L'utilisateur sélectionne une date, puis insère une entrée cyclique.
Diary lui demande alors une période en jours, et l'entrée sera
insérée avec cette période dans l'agenda (ex: laver la voiture tous
les 15 jours)
Sous la plupart des systèmes UNIX, la manière la plus simple d'imprimer un document est d'utiliser le PostScript. Emacs permet de formater des documents texte en PostScript, et éventuellement de les imprimer directement.
L'utilisation de quatre commandes permet d'effectuer cette impression :
Il est possible de paramétrer la commande utilisée pour imprimer le
fichier PostScript ainsi que les options passées à cette
commande par l'intermédiaire des variables lpr-command
(commande exécutée) et lpr-switches (liste de paramètres
passés à cette commande). Par exemple, (set-variable
'lpr-switches '("-Pche"))
(mon imprimante s'appelle che)
Doctor (M-x doctor
) est un petit programme qui
implémente le fameux robot eliza. Il s'agit d'une simulation
de personne vivante : l'utilisateur pose des questions en langue
naturelle au programme, et celui-ci lui répond par des phrases
construites. Plus précisément, le but de Doctor est de simuler
une consultation psychothérapique traditionnelle. Notons que la
version actuelle de Doctor a été censurée par Richard Stallman
lui-même en raison du côté "indécent" du code source (voir
http://www.april.org/groupes/gnufr/censoring-emacs.html
).
Mais oui, Tetris a été porté sous Emacs !
A faire...
BlackBox (M-x blackbox
) est un jeu très simple. Le principe
est de trouver des atomes cachés dans un boite noire en y envoyant des
rayons lasers.
Lorsqu'un rayon touche un atome, il est absorbé par celui-ci. Lorsqu'il arrive à la diagonale d'un atome, il est dévié de 90 degrés de manière à s'éloigner de celui-ci. Par exemple :
O +-------> O | -------+ ------+ | O | v
Lorsque le jeu commence, une grille vide apparaît. Le but du jeu est
de déplacer le curseur autour de la grille avec les flèches, et
d'appuyer sur la barre d'espacement pour lancer un rayon laser. Un
numéro apparaît, qui permet d'identifier le rayon. Si le rayon n'est
pas absorbé, alors il est repéré par le même numéro en sortie. Si le
rayon est absorbé, alors la lettre H
(hit) est affichée à la
place. Si par hasard le rayon sort au même endroit d'où il est parti,
alors la lettre R
(reflected) est affichée à la place.
Quand le joueur pense avoir deviné où se trouve un atome, alors il
place le curseur sur la grille, et appuie sur la barre d'espacement
pour placer un atome. Quand il a placé tous les atomes, il appuie sur
la touche RET
afin de valider, ce qui lui permet de voir la
position réelle des atomes.
Emacs offre deux modes pratiques pour le dessin ASCII.
picture
A faire...
artist
A faire...
Un des correcteurs orthographiques les plus populaires sous UNIX est ispell. Emacs intègre logiquement une interface permettant de le manipuler sur un buffer.
Le principe est qu'Emacs lance un processus ispell, et ensuite qu'il lui envoie des données texte à partir du buffer. A chaque mot incorrect, Emacs propose un choix parmi plusieurs possibilités par l'intermédiaire d'un autre buffer. Il est possible de lancer un processus ispell sur plusieurs parties d'un buffer :
M-$
: exécute ispell sur le mot se
trouvant sous le point
M-TAB
: complète le mot sous le point par le premier
mot correct parmis ceux proposés par le dictionnaire
M-x ispell-buffer
: exécute ispell sur le
buffer entier
M-x ispell-region
: exécute ispell sur la
région
Pour répondre aux besoins de dictionnaires en plusieurs langues, ispell peut passer d'un dictionnaire à un autre, par le biais de la fonction ispell-change-dictionnary. L'utilisateur saisit un dictionnaire, et ensuite toute correction se fera dans cette langue (à condition que le dictionnaire soit installé sur le système).
Flyspell est une interface supplémentaire à ispell, qui permet d'utiliser ispell ``à la volée'' sur un texte, et de mettre en évidence un mot mal orthographié dès sa saisie.
Flyspell est un mode mineur. Il suffit donc de passer en
mode flyspell (M-x flyspell-mode
en considérant que
flyspell est correctement installé) pour l'utiliser.
A chaque mot incorrectement orthographié, l'utilisateur a le choix entre utiliser les raccourcis d'ispell, et utiliser un menu contextuel invoqué par un clic avec le bouton du milieu de la souris. Ce menu propose un ensemble de mots corrects, ou propose à l'utilisateur de sauvegarder le mot dans le dictionnaire.
Flyspell est disponible sur
http://kaolin.unice.fr/~serrano/emacs/emacs.html
, mais est
intégré aux nouvelles versions d'Emacs.
Comme chacun le sait, la rivalité Emacs/vi fait rage.
Des développeurs Emacs on cependant essayé de trancher en proposant un mode dans lequel les raccourcis clavier sont ceux de vi, mais qui permet de profiter de toutes les facilités d'Emacs. Ce mode est le mode viper (Viper Is a Package for Emacs Rebels).
Il est exécuté par M-x viper-mode
, qui bascule alors en mode
viper. Lorsqu'il est exécuté pour la première fois, ce mode
affiche une page d'aide qui explique entre autres comment quitter ce
mode.
L'utilisateur a ensuite le choix entre plusieurs niveaux d'utilisation
(entre beginner et wizard), qui déterminent jusqu'à
quelle profondeur vi sera émulé. Par exemple, aux niveaux
les plus hauts, le raccourci :wq
quittera Emacs et
les touches d'Emacs seront remplacées par celles de
vi.
M-x viper-go-away
permet heureusement de quitter ce mode, et
de revenir à un Emacs normal à tout moment.