-----------
EMACS
-----------

Editeur de texte
Extensibles avec des fichiers écrit en LISP
Documentation intégrée en anglais
Disponible sous GNU/LINUX, FreeBSD, NetBSD, OpenBSD, SunOS, MacOS, Windows

------------------
INTERFACE
------------------

Barre de Menu
Reconnaissance des extensions et formats de fichiers (*.tex ou *.c) et chargement du mode approprié (LATEX ou ANSIC) et affichage d'un menu spécifiques
Mode Programmation propre à chaque langage ( C, C++, Java, Perl ...) avec coloration syntaxique et indentation automatique
Compilation des sources des programmes et débuggage (gdb pour le C et Auctex pour LATEX)
Lancement de commandes SHELL
Zones (BUFFER) de saisie ou d'affichage d'un ou de plusieurs textes, dans une ou plusieurs fenêtres
Fenêtrage de la zone d'affichage en une ou plusieurs fenêtres
Mini Buffer pour passer les commandes avec la complétion (touche TAB) pour les noms de fichiers et les noms de commande
Gestion d'un historique des commandes passées dans le Mini Buffer (touche UPARROW)
Gestion d'un historique des copier/couper/coller (TAMPON)
Sauvegarde automatique et régulière des fichiers modifiés (~fichier)
Marquage du texte à l'aide de TAG dans le texte et liste des hyperliens (BOOKMARK) renvoyant au TAG du fichier
Sélection d'une zone rectangulaire dans le texte
Pliage d'un texte long en deux sous parties
Fonction de recherche incrémentale et de substitution
Fonction d'abréviation Globales ou Locales pour placer une expression répétitive pour la durée de la session (ou ~/.emacs)
Fonction de Macro pour les opérations répétitives et de Macros Permanentes enregistrées dans un fichier (~/.macro.txt) et chargées avec le fichier de configuration (~/.emacs)
Jeux:
	tétris
	solitaire
	doctor

---------
MODE
---------

Langage:				ANSI C		LATEX		SGML
Formats:				.c			.tex			.sgml
Programmes:			gcc, gdb		auctex			
Modules:										psgml

--------------
FICHIERS
--------------

emacs
emacs fichier
vi ~/.emacs

---------
LINKS
---------

http://www.emacsfr.org
http://www.linux-france.org/article/appli/emacs/manuel/
http://www.parinux.org/ressources/docs/debuter-efficacement-avec-emacs/

------------------
FONCTIONS
------------------

Préfixes:
M = 	SHIFT ou ESCAPE 		(touche  Méta pour indquerqu'une commande va être donnée)
C = 	CTRL 				(touche raccourcie pour une commande)
$ = 	DOLLAR 				(touche pour lancer une commande shell)
-> = 	TAB					(tabulation pour la complétion)
^ = 	UPARROW 			(flèche vers le haut pour faire défiler l'historique des commandes)

Conventions:
M x 		(SHIFT -> X) 		(SHIFT relâcher puis sur la touche x)
C-x 		(CTRL + X) 		(ensemble CTRL + X sans relâcher sur la touche X)
C-x u 	(CTRL + X) -> U 	(ensemble CTRL + X relâchez puis sur la touche U) 
C-x C-u	(CTRL + (X -> U)) 	(ensemble CTRL + X puis sans relâcher CTRL la touche U)

Exemples:
M x shell					(saisie d'une commande dans l'interpéteur de commande SHELL)
M x tetris					(lancer tétris)
M x solitaire				(lancer solitaire)
M x doctor				(lancer le spychanalyste)
C-g						(interrompre la séquence en cour, le message 'QUIT' s'affiche alors dans le minibuffer)
C-x u					(annuler la dernière commande)
C-h t						(HELP tutoriel) 
C-h c					(HELP description d'une clé)
C-h f						(HELP description d'une fonction)
C-x C-f fichier				(FILE ouverture ou création d'un autre fichier dans un Buffer séparé)
C-x i						(insertion d'un fichier dans le fichier ouvert, saisie dans le Mini Buffer du chemin du fichier à insérer)
C-x C-s					(sauvegarder le texte saisie)
C-x C-w					(sauvegarder sous un autre nom à saisir dans le minibuffer)
C-x RET f					(choisir une table de caractères UTF8 ou ISO8859-1 LATIN)
C-x C-c					(quitter Emacs)

Déplacement:
M <						(début de fichier)
M >						(fin de fichier)
C-e						(END fin de ligne)
C-a						(APPEND début de ligne)
M f						(FINE fin de mot)
M b						(BEFORE début de mot)
C-f						(FORWARD lettre suivante)
C-b						(BEFORE lettre précédente)

Buffers:
C-x C-b					(BUFFER voir la listes des buffers ouverts)
C-x o					(OPEN déplacer le curseur à l'intérieur de la liste de Buffer pour le sélectionner)
C-x b					(BUFFER afficher le fichier à 'aide de son nom avec la complétion)
C-x 2					(SPLITINTWO diviser la fenêtre courante en deux)
C-x 4 f					(SPLITINTWO and FILE ouvrir un nouveau fichier dans une autre fenêtre, saisie dans le Mini Buffer du nom de fichier)
C-x 0					(ZERO fermer la fenêtre active)
C-x 1					(KEEPONE fermer toutes les fenêtres sauf celle qui est active)
C-x k					(KICK fermer un Buffer avec avertissement pour le sauvegarder s'il a été modifié)

Marquage:
C-SPACE 				(indiquer le début de la zone)
M < + C-SPACE + M >		(sélectionner la totalité d'un texte)
C-x C-x 					(afficher le marquage existant)
M x upcase-region			(majuscule d'une région de texte)
M x downcase-region		(minuscule d'une région de texte)
M c						(majuscule la première lettre d'un mot)
C-x C-o					(supprimer une série de lignes vides)
M x sort-lines				(tri sur les lignes par ordre alphabétique)

Copier/Couper/coller:
C-k						(supprimer la ligne courante à partir de la position du curseur)
C-y						(coller la zone à partir du curseur)
C-w						(couper la zone marquée)
C-y						(coller la zone stockée dans le tampon principal)
M w						(copier la zone marquée)
C-y						(coller la zone stockée dans le tampon principal)
M y						(affichage des historiques des Copier/Couper/Coller)

Rectangle:
C-x r k					(couper le rectangle)
C-x r y					(coller le rectangle)

Pliage:
C-x n n					(voir la région présélectionnée)
C-x n w					(revenir à l'état normal)

Recherches/Substitutions:
C-s						(lancer une recherche incrémentale vers l'avant)
C-r						(lancer une recherche incrémentale vers l'arrière)
M %						(saisir dans le minibuffer l'expression à remplacer + ENTER + saisie de l'expression de substitution)
						(SPACE ou Y pour valider la substitution et continuer la recherche)
						(N pour ne pas effectuer la substitution et continuer la recherche)
						(! pour effectuer toutes les substitutions à partir de la position courante)
						(H pour voir les autres options qui sont proposées)
						(C-x u pour annuler, comme précisé précédemment)

Marque page:
C-x r m					(placer un TAG et lui donner un intitulé dans le Mini Buffer)
C-x r l					(liste des TAG)
C-x r b					(ouvre un TAG en saisissant son intitulé dans le Mini Buffer)
M x bookmark-delete		(supprimer un marque page)

Abréviations:
M x abbrev-mode			(mode abbréviation pour saisir le nom de l'abréviation globale)
C-x a i g					(saisie de l'expression dans le Mini Buffer)
C-x a i l					(créer une abbréviation locale) 
M x unepand-abbrev		(supprimer la dernière abréviation)
M x kill-all-abbrevs			(supprimer toutes les abbréviations)

Macros:
C-x						(marque le début de la définition de la Macro)
C-e						(première action: aller en fin de ligne)
!						(deuxième action:saisie d'une entrée "!")
C-n						(troiième action: passer à la ligne suivante DONWARROW)
C-x						(marque la fin de la Macro)
C-x e					(execute la Macro)
M n C-x e					(exécute N fois de suite la Macro à l'aide des chiffres du clavier alphabétique et non avec ceux du pavé numérique)

Macro permanentes:
C-x C-f macros.txt			(définition du fichier contenant les Macros)
C-x						(marque le début de la définition de la Macro)
C-x						(marque la fin de la définition de la Macro)
M x name-last-kbd-macro		(saisir le nom de la dernière Macro dans le Mini Buffer) 
M x insert-kbd-macro		(saisir le nom de la Macro dans le Mini Buffer) 
C-x C-s					(sauvegarder une Macro) 
M x load-file				(chargement des Macros du fichier macros.txt)
M x macro!				(exécution de la Macro "macro!")

Compilation:
M x compile 				(saisie de la commande de compilation)
M x gdb					(débugger en C avec le programme de débuggage "gdb")