6.1. Quitter Emacs

Il existe deux commandes pour sortir d'Emacs car il existe deux types de sortie : suspendre Emacs et détruire Emacs.

Suspendre veut dire arrêter Emacs temporairement et rendre le contrôle à son processus parent (habituellement un shell), vous permettant de revenir plus tard à vos éditions dans la même session d'Emacs, avec les mêmes tampons, le même contenu du presse-papiers, le même historique d'annulation, etc. C'est la manière habituelle de sortir d'Emacs.

Détruire Emacs veut dire détruire la tâche Emacs. Vous pourrez redémarrer Emacs plus tard, mais vous obtiendrez un Emacs tout frais ; il n'y a aucun moyen de revenir à une session d'édition après qu'elle ait été détruite.

C-z

Suspendre Emacs (suspend-emacs) ou iconifier un cadre (iconify-or-deiconify-frame).

C-x C-c

Détruire Emacs (save-buffers-kill-emacs).

Pour suspendre Emacs, tapez C-z (suspend-emacs). Ceci vous renvoie au shell depuis lequel vous avez invoqué Emacs. Vous pourrez revenir à Emacs avec la commande shell %emacs, pour les shells les plus courants.

Pour les systèmes ne supportant pas la suspension de programmes, C-z démarre un shell fils qui communique directement avec le terminal. Emacs attend que vous quittiez ce sous-shell. (Le moyen de faire cela est certainement C-d ou exit, mais cela dépend du shell que vous utilisez.) Le seul moyen sur ces systèmes de revenir au shell depuis lequel vous avez lancé Emacs (pour vous déloguer, par exemple), est de détruire Emacs.

La suspension échoue également si vous lancez Emacs depuis un shell qui ne supporte pas la suspension de programmes, bien que le système lui-même le supporte. Dans un tel cas, vous pouvez initialiser la variable cannot-suspend à une valeur différente de nil pour forcer C-z à démarrer un shell fils. (On pourrait aussi décrire le shell parent d'Emacs comme "inférieur" pour empêcher de supporter correctement le contrôle des tâches, mais c'est une histoire de goût.).

Lorsqu'Emacs communique directement avec un serveur X et crée sa propre fenêtre X dédiée, C-z a une signification différente. Suspendre une application qui utilise sa propre fenêtre X ne serait ni sensé, ni utile. Au lieu de ça, C-z exécute la commande iconify-or-deiconify-frame, qui ferme temporairement le cadre d'Emacs sélectionné (Chapter 19). Revenir à une fenêtre shell se fait grâce au gestionnaire de fenêtres.

Pour détruire Emacs, tapez C-x C-c (save-buffers-kill-emacs). Une touche à deux caractères est utilisée pour rendre plus difficile sa saisie. Cette commande propose d'abord de sauvegarder les tampons de visite de fichier modifiés. Si vous ne les sauvegardez pas tous, il redemande une confirmation par yes avant de détruire Emacs, car tout changement non sauvegardé sera perdu à jamais. De plus, si des sous-processus sont toujours en cours d'exécution, C-x C-c vous demande de confirmer leur destruction, car la destruction d'Emacs entraînera la destruction immédiate de ces sous-processus.

Il n'existe aucun moyen de redémarrer une session Emacs une fois que vous l'avez détruite. Vous pouvez, cependant, vous arranger pour qu'Emacs sauvegarde certaines informations sur la session, comme quels fichiers ont été visités, le moment auquel vous le détruisez, ainsi la prochaine fois que vous démarrerez Emacs, il essaiera de visiter les mêmes fichiers et ainsi de suite. Section 31.25.

Le système d'exploitation attend habituellement après certains caractères spéciaux dont la signification est de détruire ou de suspendre le programme que vous exécutez. Cette possibilité du système d'exploitation est annihilée lorsque vous êtes sous Emacs. Les significations de C-z et C-x C-c comme touches sous Emacs sont inspirées de l'utilisation de C-z et C-c sur la plupart des systèmes d'exploitation pour stopper ou détruire un programme, mais c'est la seule relation avec le système d'exploitation. Vous pouvez personnaliser ces touches pour exécuter la commande de votre choix (Section 32.4.1).