LESSKEY(1)

NOM
lesskey — Personnalisation des raccourcis clavier de less

SYNOPSIS (obsolète)
lesskey [-o sortie] [--] [entrée]
lesskey [--output=sortie] [--] [entrée]
lesskey -V
lesskey --version

PORTÉE
Ce document décrit le format du fichier source de lesskey utilisé par less(1) à partir de la version 582. Dans les versions précédentes de less(1), un programme séparé nommé lesskey était utilisé pour compiler le fichier source de lesskey en un format compréhensible par less(1). Cette phase de compilation n’étant plus nécessaire, le programme lesskey est obsolète, bien que le format du fichier soit toujours pris en charge par less(1).

DESCRIPTION
Un fichier lesskey permet de spécifier un ensemble de raccourcis clavier et de variables d’environnement à utiliser lors d’une invocation de less(1).

FORMAT DU FICHIER
Le fichier d’entrée se compose d’une ou plusieurs sections. Chacune d’entre elles commence par une ligne qui identifie le type de la section. Les types de section valables sont :

#command
    Personnalisation des raccourcis clavier pour les commandes.

#line-edit
    Personnalisation des raccourcis clavier pour l’édition de ligne.

#env
    Définition de variables d’environnement.

Les lignes vides et les lignes débutant par un croisillon (#) sont ignorées, sauf dans les cas indiqués ci-après.

SECTION DE COMMANDES
La section de commandes débute par la ligne

#command

Si la section de commandes est la première du fichier, cette ligne peut être omise. La section de commandes se compose de lignes de la forme :

  chaîne <blanc> action [chaîne_supplémentaire] <caractère_nouvelle_ligne>

Les blancs sont constitués de n’importe quelle séquence d’une ou plusieurs espaces et/ou tabulations. La chaîne contient les touches de commande qui invoquent l’action. Il peut s’agir d’une touche de commande unique ou d’une séquence de plusieurs touches (jusqu’à 15). L’action est le nom de l’action de less(1) issue de la liste ci-après. Les caractères de la chaîne peuvent apparaître littéralement ou préfixés par un caret (^) pour indiquer une touche de contrôle. Une barre oblique inversée suivie d’un à trois chiffres octaux permet de spécifier un caractère par sa valeur octale. Une barre oblique inversée suivie de certains caractères spécifie les caractères d’entrée comme suit :
    \b | RETOUR ARRIÈRE | (0x08)
    \e | ÉCHAPPEMENT | (0x1B)
    \n | SAUT DE LIGNE | (0x0A)
    \r | RETOUR | (0x0D)
    \t | TABULATION | (0x09)

    \k suivi d’un unique caractère représente le ou les caractères produits lorsqu’une de ces touches est pressée :
    \kb | RETOUR ARRIÈRE (la touche RETOUR_ARRIÈRE)
    \kB | Ctrl-RETOUR_ARRIÈRE
    \kd | FLÈCHE_BAS
    \kD | PAGE_SUIVANTE
    \ke | FIN
    \kh | DÉBUT
    \ki | INSERTION
    \kl | FLÈCHE_GAUCHE
    \kL | Ctrl-FLÈCHE_GAUCHE
    \kr | FLÈCHE_DROITE
    \kR | Ctrl-FLÈCHE_DROITE
    \kt | TABULATION_ARRIÈRE
    \ku | FLÈCHE_HAUT
    \kU | PAGE_PRÉCÉDENTE
    \kx | SUPPRESSION
    \kX | Ctrl-SUPPRESSION
    \k1 | F1

    Une barre oblique inversée suivie de n’importe quel autre caractère indique que ce dernier doit être considéré littéralement. Les caractères qui doivent être précédés d’une barre oblique inversée comprennent le caret (^), l’espace, la tabulation, le croisillon (#) et la barre oblique inversée elle-même.

    Une action peut être suivie d’une chaîne supplémentaire. Quand une telle commande est entrée pendant l’exécution de less(1), l’action est effectuée, puis la chaîne supplémentaire est analysée comme si elle avait été tapée dans less(1). Cette fonctionnalité peut dans certains cas être utilisée pour étendre les possibilités d’une commande. Par exemple, voyez les commandes « { » et « :t » dans l’exemple ci-après. La chaîne supplémentaire a une signification spéciale pour l’action « quit » : quand less(1) se termine, la valeur ASCII du premier caractère de la chaîne supplémentaire est utilisée comme code de retour.

EXEMPLE
Le fichier d’entrée suivant décrit l’ensemble des touches de commande par défaut utilisé par less(1). La documentation de chaque commande se trouve dans la page de manuel de less(1) dans la description de la séquence de touches qui invoque la commande.

    #command
    \r | forw-line
    \n | forw-line
    e | forw-line
    j | forw-line
    \kd | forw-line
    ^E | forw-line
    ^N | forw-line
    k | back-line
    y | back-line
    ^Y | back-line
    ^K | back-line
    ^P | back-line
    J | forw-line-force
    K | back-line-force
    Y | back-line-force
    d | forw-scroll
    ^D | forw-scroll
    u | back-scroll
    ^U | back-scroll
    \40 | forw-screen
    f | forw-screen
    ^F | forw-screen
    ^V | forw-screen
    \kD | forw-screen
    b | back-screen
    ^B | back-screen
    \ev | back-screen
    \kU | back-screen
    z | forw-window
    w | back-window
    \e\40 | forw-screen-force
    F | forw-forever
    \eF | forw-until-hilite
    R | repaint-flush
    r | repaint
    ^R | repaint
    ^L | repaint
    \eu | undo-hilite
    \eU | clear-search
    g | goto-line
    \kh | goto-line
    < | goto-line
    \e< | goto-line
    p | percent
    % | percent
    \e( | left-scroll
    \e) | right-scroll
    \kl | left-scroll
    \kr | right-scroll
    \e{ | no-scroll
    \e} | end-scroll
    { | forw-bracket {}
    } | back-bracket {}
    ( | forw-bracket ()
    ) | back-bracket ()
    [ | forw-bracket []
    ] | back-bracket []
    \e^F | forw-bracket
    \e^B | back-bracket
    G | goto-end
    \e> | goto-end
    > | goto-end
    \ke | goto-end
    \eG | goto-end-buffered
     | status
    ^G | status
    :f | status
    / | forw-search
    ? | back-search
    \e/ | forw-search *
    \e? | back-search *
    n | repeat-search
    \en | repeat-search-all
    N | reverse-search
    \eN | reverse-search-all
    ^O^N | osc8-forw-search
    ^On | osc8-forw-search
    ^O^P | osc8-back-search
    ^Op | osc8-back-search
    ^O^O | osc8-open
    & | filter
    m | set-mark
    M | set-mark-bottom
    \em | clear-mark
    ' | goto-mark
    ^X^X | goto-mark
    E | examine
    :e | examine
    ^X^V | examine
    :n | next-file
    :p | prev-file
    t | next-tag
    T | prev-tag
    :x | index-file
    :d | remove-file
    - | toggle-option
    :t | toggle-option t
    s | toggle-option o
     | ## Utiliser un nom d’option long en faisant débuter la
     | ## chaîne supplémentaire avec UN tiret ; par exemple :
     | ## s toggle-option -log-file\n
     | display-option
    | | pipe
    v | visual
    ! | shell
    # | pshell
    + | firstcmd
    H | help
    h | help
    V | version
    0 | digit
    1 | digit
    2 | digit
    3 | digit
    4 | digit
    5 | digit
    6 | digit
    7 | digit
    8 | digit
    9 | digit
    q | quit
    Q | quit
    :q | quit
    :Q | quit
    ZZ | quit

PRIORITÉ
Les commandes spécifiées par lesskey ont priorité sur les commandes par défaut. Une touche de commande par défaut peut être désactivée en l’incluant dans le fichier d’entrée avec l’action « invalid » (non valable). Une touche peut aussi être définie pour ne rien faire en utilisant l’action « noaction » (pas d’action). « noaction » est similaire à « invalid », excepté que less(1) émettra un bip d’erreur pour une commande « invalid », alors qu’il ne le fera pas pour une commande « noaction ». De plus, TOUTES les commandes par défaut peuvent être désactivées en ajoutant cette ligne de contrôle dans le fichier d’entrée :

#stop

Cette ligne aura pour effet que toutes les commandes par défauts seront ignorées. La ligne #stop doit être la dernière de cette section du fichier.

Soyez conscient que la ligne #stop peut être dangereuse. Comme toutes les commandes par défaut sont désactivées, vous devez fournir suffisamment de commandes avant la ligne #stop pour activer toutes les actions nécessaires. Par exemple, ne pas fournir de commande « quit » (quitter) peut s’avérer assez gênant.

SECTION D’ÉDITION DE LIGNE
La section d’édition de ligne commence par la ligne :

#line-edit

Cette section spécifie de nouveaux raccourcis clavier pour les commandes d’édition de ligne d’une manière similaire à celle dont les raccourcis clavier pour les commandes ordinaires sont spécifiées dans la section #command. La section d’édition de ligne consiste en une liste de paires touche/action, une paire par ligne, comme dans l’exemple ci-après.

EXEMPLE
Le fichier d’entrée suivant décrit l’ensemble des touches d’édition de ligne par défaut utilisé par less(1) :

    #line-edit
    \t | forw-complete
    \17 | back-complete
    \e\t | back-complete
    ^L | expand
    ^V | literal
    ^A | literal
    \el | right
    \kr | right
    \eh | left
    \kl | left
    \eb | word-left
    \e\kl | word-left
    \ew | word-right
    \e\kr | word-right
    \ei | insert
    \ex | delete
    \kx | delete
    \eX | word-delete
    \ekx | word-delete
    \e\b | word-backspace
    \e0 | home
    \kh | home
    \e$ | end
    \ke | end
    \ek | up
    \ku | up
    \ej | down
    ^G | abort

VARIABLES D’ENVIRONNEMENT DE LESS
La section des variables d’environnement commence par la ligne

#env

Cette ligne est suivie d’une liste de définitions de variables d’environnement. Chaque ligne comporte un nom de variable d’environnement, un signe égal (=) et la valeur à affecter à la variable d’environnement. Les blancs situés avant et après le signe égal sont ignorés. Les variables définies de cette façon ne sont visibles que par less(1). Si une variable est spécifiée à la fois dans l’environnement du système et dans un fichier lesskey, c’est la valeur définie dans le fichier lesskey qui a priorité.

Si, à la place de =, le nom de la variable est suivi de +=, la chaîne est concaténée à la valeur actuelle de la variable. Cette opération ne fonctionne actuellement que si la ligne contenant += suit immédiatement la définition originelle de la même variable (dans une ligne contenant =), sans définitions d’autres variables intercalées. Elle n’est possible que pour une variable définie dans le fichier, pas pour une variable de l’environnement du système. La chaîne est concaténée littéralement sans ajout de blanc ; si un blanc est souhaité, il devra être ajouté à la fin de la ligne précédente (il ne peut pas être ajouté au début de la chaîne +=, car un blanc après le signe égal est ignoré, comme indiqué ci-avant).

Dans la chaîne située après le signe égal, une sous-chaîne de la forme ${NOM_VAR} sera remplacée par la valeur de la variable d’environnement NOM_VAR. La valeur de la variable peut provenir de l’environnement du système, d’un fichier lesskey précédent ou d’une définition précédente dans le fichier lesskey actuel. Des remplacements de texte simples peuvent être effectués en utilisant la syntaxe ${NOM_VAR/CHAINE_ORIG/CHAINE_REMPL}. Cette dernière remplace toutes les occurrences de « CHAINE_ORIG » dans la variable d’environnement NOM_VAR par la chaîne « CHAINE_REMPL ». « CHAINE_ORIG » est recherchée en effectuant une simple comparaison de textes ; les métacaractères ne sont pas pris en charge. Toute occurrence de barre oblique (/) ou d’accolade fermante (}) dans « CHAINE_ORIG » ou « CHAINE_REMPL » doit être protégée en la faisant précéder de DEUX barres obliques inversées. Si « CHAINE_REMPL » est vide, toutes les occurrences de « CHAINE_ORIG » seront supprimées. La présence d’une barre oblique immédiatement avant l’accolade fermante n’est pas obligatoire. Il est possible d’effectuer des remplacements multiples en utilisant la syntaxe ${NOM_VAR/CHAINE_ORIG1/CHAINE_REMPL1/CHAINE_ORIG2/CHAINE_REMPL2/ ... CHAINE_ORIGn/CHAINE_REMPLn}.

CONFIGURATION CONDITIONNELLE
Si une ligne commence par « #version » suivi d’un opérateur de comparaison et d’un numéro de version, le reste de la ligne ne sera traité que si la version de l’instance de less(1) (ou lesskey) en cours d’exécution satisfait à la condition, ce qui peut s’avérer utile dans le cas où un fichier lesskey est utilisé par différentes versions de less(1).

Supposons par exemple qu’une nouvelle commande « sideways-search » a été ajoutée dans la version 777 de less(1) ; la ligne suivante assignera alors la nouvelle commande à la touche Q, mais seulement pour les versions de less(1) qui la prennent en charge et elle sera ignorée des versions de less(1) antérieures à 777.

	#version >= 777  Q sideways-search

Six opérateurs de comparaison sont pris en charge :
    > | Supérieure à
    < | Inférieure à
    >= | Supérieure ou égale à
    <= | Inférieure ou égale à
     | Égale à
    != | Différente de

La fonctionnalité « #version » est prise en charge à partir de la version 594 de less(1) et lesskey. Dans les versions antérieures, toutes les lignes commençant par « #version » seront ignorées.

EXEMPLE
Le fichier d’entrée suivant active les options -i et -S à chaque exécution de less(1) et ajoute une option --color pour les versions 595 et ultérieures.

	#env
	## Notez qu’il doit y avoir une espace à la fin de la ligne suivante
	## pour séparer l’option --color de l’option -S.
	LESS = -i -S 	#version >= 595  LESS += --color=Hkc

VOIR AUSSI
less(1)

AVERTISSEMENTS
Sur les systèmes MS-DOS et OS/2, certaines touches envoient une séquence de caractères qui commence par le caractère NUL (NDT : de code ASCII 0). Ce caractère NUL doit être représenté sous la forme \340 dans un fichier lesskey.

COPYRIGHT
Copyright (C) 1984-2024 Mark Nudelman

less(1) fait partie du projet GNU et est un logiciel libre. Vous pouvez le redistribuer et/ou le modifier sous les termes de la GNU General Public License comme publiée par la Free Software Foundation ou de la Less License. Voir le fichier README dans la distribution de less(1) pour plus de détails à propos de la redistribution. Vous devriez avoir reçu une copie de la GNU General Public License en même temps que less(1) ; voir le fichier COPYING. Si ce n'est pas le cas, écrivez à la Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. Vous devriez aussi avoir reçu une copie de la Less License ; voir le fichier LICENSE.

less(1) est distribué dans le but d’être utile, mais SANS AUCUNE GARANTIE ; sans même une quelconque garantie de QUALITÉ MARCHANDE ou D’ADÉQUATION À UNE UTILISATION PARTICULIÈRE. Consulter la GNU General Public License pour plus de détails.

AUTEUR
Mark Nudelman
Envoyez les rapports de bogue à https://github.com/gwsw/less/issues.

TRADUCTION
La traduction française de cette page de manuel a été créée par Lucien Gentis <lucien.gentis@univ-lorraine.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.