7.10. Arguments numériques

En mathématiques et en informatique, le mot argument veut dire "donnée fournie à une fonction ou une opération". Vous pouvez donner à n'importe quelle commande Emacs un argument numérique (aussi appelé argumennt préfixe). Certaines commandes interprètent l'argument comme un nombre de répétitions. Par exemple, C-f avec un argument de dix avance de dix caractères plutôt que d'un. Avec ces commandes, aucun argument est équivalent à un argument égal à 1. Des arguments négatifs indiquent à la plupart de ces commandes de déplacer ou d'agir dans la direction opposée.

Si votre clavier a une touche META, le meilleur moyen de spécifier un argument numérique est de taper des chiffres et/ou un signe moins tout en gardant la touche META appuyée. Par exemple,

M-5 C-n

devrait descendre le curseur de cinq lignes. Les caractères Meta-1, Meta-2, etc. et Meta-, sont des touches reliées aux commandes (digit-argument et negative-argument) qui sont définies pour contribuer à un argument pour la prochaine commande. Les chiffres et - modifiés par Control, ou Control et Meta, spécifient aussi des arguments numériques.

Un autre moyen de spécifier un argument est d'utiliser la commande C-u (universal-argument) suivie des chiffres de l'argument. Avec C-u, vous pouvez taper les chiffres de l'argument sans avoir à garder de touche modificatrice enfoncée ; C-u marche sur tous les terminaux. Pour taper un argument négatif, tapez un signe moins après C-u. Un signe moins sans chiffre veut normalement dire −1.

C-u suivi d'un caractère autre qu'un chiffre ou que le signe moins a une signification particulière de "multiplication par quatre". Il multiplie l'argument pour la prochaine commande par quatre. C-u deux fois multiplie celui-ci par seize. Ainsi, C-u C-u C-f avance de seize caractères. C'est un bon moyen d'avancer "rapidement", puisqu'il avance d'environ 1/5 de la ligne pour une taille usuelle de l'écran. D'autres combinaisons utiles sont C-u C-n, C-u C-u C-n (descend d'une bonne fraction de l'écran), C-u C-u C-o (insère "un tas" de lignes vierges), et C-u C-k (détruit quatre lignes).

Certaines commandes utilisent le fait qu'elles aient un argument, et pas leur valeur. Par exemple, la commande M-q (fill-paragraph) sans argument remplit le texte ; avec un argument, elle justifie aussi le texte. (Section 23.5, pour plus d'informations sur M-q.) C-u seul est un moyen pratique de donner un argument à une telle commande.

Certaines commandes utilisent la valeur de l'argument comme nombre de répétitions, mais font quelque chose de particulier lorsqu'il n'y a pas d'argument. Par exemple, la commande C-k (kill-line) avec l'argument n détruit n lignes, incluant leur caractère newline terminal. Mais C-k sans argument est spécial : il détruit le texte jusqu'au caractère newline suivant, ou, si le point est déjà en fin de ligne, il détruit le caractère newline lui-même. Ainsi, deux commandes C-k sans argument peuvent détruire une ligne non vierge, exactement comme C-k avec un argument de 1. (Section 11.7, pour plus d'informations sur C-k.)

Certaines commandes comprennent un C-u seul différemment d'un argument ordinaire. Certaines autres peuvent traiter un argument comprenant le signe moins seul différemment d'un argument de −1. Ces cas inhabituels sont décrits en temps utile ; ils le sont toujours pour des raisons de facilité d'usage de la commande.

Vosu pouvez utiliser un argument numérique pour insérer plusieurs copies d'un caractère. C'est évident sauf lorsque le caractère est un chiffre ; par exemple, C-u 6 4 a insère 64 copies du caractère a. Mais ceci ne marche pas pour insérer des chiffres ; C-u 6 4 1 spécifie un argument de 641, mais n'insère rien. Pour séparer le chiffre à insérer de l'argument, tapez un autre C-u ; par exemple, C-u 6 4 C-u 1 insère 64 copies du caractère 1.

Nous utilisons le terme "argument préfixe" aussi bien que "argument numérique" pour insister sur le fait que vous tapez l'argument avant la commande, et pour distinguer ces arguments de ceux du mini-tampon qui viennent après la commande.