\documentclass[pdf]{prosper}
%%azure,          contemporain,   nuancegris,
%%troispoints,    lignesbleues,   darkblue,
%%alienglow,      autumn,         rico,
%%pascal,         yom

\usepackage{graphicx} %\usepackage{pslatex}
\usepackage{pstricks,pst-node,pst-text,pst-3d}

\DefaultTransition{Replace}
%%Split      2 lignes traversent l'écran révélant le nouveau transparent
%%Blinds     Comme des volets mécaniques
%%Box        un rectangle s'élargissant à partir du centre
%%Wipe       comme un passage d'essuie-glace
%%Dissolve   fondu enchaîné
%%Glitter    Idem, mais apparaissant de gauche à droite
%%Replace    défaut : pas de transition animée


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\title{Courte introduction à Emacs}
\subtitle{Ce qu'il faut savoir avant de commencer}
\author{Thomas Temp\'e}
\email{Thomas.Tempe@alysse.org}
%\institution{}
%\slideCaption{}
%\logo(2cm,3cm){logo_insa}

\maketitle

%squelette de transparent
%
%\begin{slide}{}
%  \begin{itemize}
%  \item 
%  \end{itemize}
%\end{slide}
%




\begin{slide}{Un éditeur historique}
  \begin{itemize}
  \item Premières versions aux alentours de 1975
  \item De nombreuses versions ont existé
    \begin{itemize}
    \item GNU Emacs (FSF)
    \item XEmacs (Sun)
    \end{itemize}
  \item Plus ancien que l'interface graphique
  \item ``\textsl{lourd}''... sur un PDP-11 ou un modem 300 bps.
  \end{itemize}
\end{slide}


\begin{slide}{Un éditeur titanesque}
  \begin{itemize}
  \item La légende: 2 personnes le maîtrisent complètement sur terre
  \item 30-50Mo de code LISP
  \item de très nombreuses fonctions:
    \begin{itemize}
    \item calendriers maya et chinois
    \item psychanaliste et jeu de la vie
    \item agenda et gestionnaire de fichiers
    \end{itemize}
  \end{itemize}
\end{slide}



\begin{slide}{Un environnement très riche}
  \begin{itemize}
  \item multi-fenêtre, multi-document 
  \item coloration syntaxique, correction orthographique
  \item facilités d'édition contextuelles
  \item supporte la majorité des langages de programmation connus
  \item intégralement auto-documenté
  \item support multilingue inégalé
  \item interface réseau transparente pour éditer des fichiers par
    ssh, webdav, ftp...
  \end{itemize}
\end{slide}


\begin{slide}{... pour quoi faire?}
  \begin{itemize}
  \item éditer des fichiers texte, de configuration...
  \item programmer
  \item en conjonction avec d'autres outils ( HTML, \LaTeX ...)
  \item autres utilisations, marginales (e-mail, calendrier, gestion de fichiers, todo lists...)
  \end{itemize}
Si vous ne faites rien faites rien de tout ça, Emacs n'est pas fait pour vous.
\end{slide}



\begin{slide}{Un outil austère?}
\includegraphics[width=8cm]{gui}\\
Si vous avez choisi la courbe rouge, Emacs n'est pas fait pour vous.
\end{slide}



\begin{slide}{Raccourcis, commandes, documentation}

Comment sauver un fichier:
  \begin{itemize}
  \item Menu 
\texttt{File} $\rightarrow$
\texttt{save current buffer} (F10)
\item  Raccourci \textbf{C-x C-s}
  \begin{itemize}
  \item \textbf{C-}: \texttt{Control-}
  \item \textbf{M-}: \texttt{Alt-} (\texttt{Meta-})
  \item Tous les raccourcis peuvent être redéfinis
  \end{itemize}
\item Command\texttt{save-buffer}
  \begin{itemize}
  \item accessible avec \textbf{M-x save-buffer}
  \item possède une documentation consultable
  \end{itemize}
  \end{itemize}
\end{slide}




\begin{slide}{La documentation}
  \begin{itemize}
  \item \textbf{C-h a} rechercher dans les noms de commandes
  \item \textbf{C-h b} liste des raccourcis courants
  \item \textbf{C-h k} décrit l'action d'un raccourci
  \item \textbf{C-h m} décrit le mode d'édition en cours
  \item \textbf{C-h v} documentation d'un variable globale
  \item \texttt{info emacs} donne un manuel d'utilisation
  \end{itemize}
\end{slide}



\begin{slide}{Les raccourcis claviers}
  \begin{itemize}
  \item un ou plusieurs appuis
    \begin{itemize}
      \item \textbf{C-x}: préfixe des commandes générales (opérations sur les fichiers...)
  \item \textbf{C-h}: préfixe de l'aide
  \item \textbf{C-c}: commandes spécifiques au mode
  \item \textbf{M-x}: permet de taper un nom de commande
    \end{itemize}
  \item parfois longs: \textbf{C-x r s a}.
\end{itemize}
\end{slide}

 

\begin{slide}{Les modes}
Chaque buffer (ficher ouvert) possède:
  \begin{itemize}
  \item  exactement un \emph{mode majeur} 
    \begin{itemize}
    \item ex: mode texte, mode C++, mode dessi)
    \end{itemize}
  \item  0 ou plusieurs \emph{modes mineurs} 
    \begin{itemize}
    \item ex: correction orthographique, coloration syntaxique, facilités d'édition...
    \end{itemize}
  \end{itemize}
Ces modes déterminent le comportement de l'éditeur, les raccourcis claviers...
\end{slide}


\begin{slide}{Sélection de texte}
  \begin{itemize}
  \item déconcertante: impossible de sélectionner/couper à la souris
  \item la \emph{marque}, posée avec \textbf{C-espace}
  \item la \emph{région}, zone entre marque et curseur
  \item \textbf{C-w} coupe la région, et l'ajoute au \emph{kill ring}
  \item \textbf{C-y} (yank) colle le dernier élément du kill ring
  \item \textbf{M-y} pour naviguer dans le kill ring
  \item la marque est déposée automatiquement au début de la région
  yankée
  \end{itemize}
\end{slide}


\begin{slide}{Les expressions régulières}
  \begin{itemize}
  \item \textsl{wildcards}
  \item un pilier incontournable de Emacs
    \begin{itemize}
  \item \verb!"^Subject:.*\\[linux-arverne\\]"!
\item \tiny{\verb="[.?!][]\"')]*\\($\\| $\\|\t\\|  \\)[ \t\n]*"=}

    \end{itemize}
  \end{itemize}
\end{slide}


\begin{slide}{Personalisation de Emacs}
  \begin{itemize}
  \item \textbf{M-x local-set-key} change un raccourci au vol
  \item menu \texttt{options} $\rightarrow$ \texttt{Customize Emacs}
  permet une personalisation interactive persistante dans un ``GUI''
\item on peut ajouter du code Lisp dans le fichier \texttt{~/.emacs}
  \begin{itemize}
  \item ex: \texttt{(global-set-key (kbd "M-/") 'save-buffer)}
  \end{itemize}
  \end{itemize}
\end{slide}


\begin{slide}{Conclusion}
  \begin{itemize}
  \item Cette présentation est très superficielle
  \item Pour la suite: lire la \emph{courte introduction à Emacs}
  \item Indispensable: la \emph{Emacs Reference Sheet}
  \item Apprendre Emacs, une tâche de longue haleine
  \item Emacs: l'outil des vrais hackers
  \end{itemize}
\end{slide}

  
\part{Questions?}

\begin{slide}{Redistribution de ce document}
  \vspace{5cm}

Ce document est accessible sur \texttt{http://www.alysse.org/tom/2003\_emacs/} 
  \tiny{
    Copyright 2003 \textcopyright{} Thomas Tempé.\\
    
    Permission est accordée de distribuer et modifier ce document selon
    les termes de la licence \textsl{GNU Free Documentation Licence}
    dans sa version 1.1 ou postérieure, telle qu'elle est publiée par la
    \textsl{Free Software Foundation}.
  }
\end{slide}


\end{document}
%%                   <<COMPILEZ-MOI>>

