Linux

CentOS 5.3

joe(1)


joe

NOM

joe − Joe’s Own Editor (L’éditeur personnel de Joe)

SYNTAXE

joe [paramètres−globaux] [ [paramètres−locaux] fichier ]...
jstar [paramètres−globaux] [ [paramètres−locaux] fichier ]...
jpico [paramètres−globaux] [ [paramètres−locaux] fichier ]...
jmacs [paramètres−globaux] [ [paramètres−locaux] fichier ]...
rjoe [paramètres−globaux] [ [paramètres−locaux] fichier ]...

DESCRIPTION

Joe est un éditeur de texte ASCII puissant et convivial. Il possède une interface utilisateur sans mode qui ressemble à celle d’autres éditeurs conviviaux sur PC. Les utilisateurs de Wordstard de Micro−Pro et des langages « Turbo » de Borland se sentiront chez eux. Joe est néanmoins un éditeur Unix complet et offre de nombreuses fonctions pour l’édition de textes et de codes sources.

Il permet aussi d’émuler plusieurs autres éditeurs :
jstar
est une fidèle imitation de WordStar avec de nombreuses extensions propres à joe. jpico est une fidèle imitation de l’éditeur pico du système de courrier électronique Pine, mais avec toute une série d’extensions et d’améliorations. jmacs est une imitation d’emacs. Et rjoe est une version bridée de joe qui se limite à l’édition de fichiers spécifiés sur la ligne de commande.

Même si joe se compose en fait de cinq éditeurs différents, il n’a besoin que d’un seul exécutable, ou plutôt d’un seul binaire avec cinq noms différents. C’est le nom de l’éditeur à émuler suivi de "rc" qui donne son nom au fichier d’initialisation de joe et détermine ainsi la personnalité à endosser.

Joe est un logiciel libre. Vous pouvez le distribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU (GNU General Public License) publiée par la Fondation pour le Logiciel Libre (Free Software Foundation).

Je ne compte pas faire de joe un éditeur commercial ou un partagiciel (share−ware).

Il est disponible sur Internet à l’adresse suivante :
http://www.sourceforge.net/projects/joe−editor/

USAGE

Pour lancer l’éditeur, tapez joe éventuellement suivi d’un ou plusieurs noms de fichiers que vous souhaitez éditer. Chaque nom de fichier peut être précédé d’un paramètre local (voir le tableau de paramètres locaux ci−dessous). D’autres paramètres globaux, qui influent sur l’éditeur lui−même, peuvent aussi être placés sur la ligne de commande (voir le tableau de paramètres globaux ci−dessous). Si vous éditez un nouveau fichier, vous pouvez indiquer le nom du nouveau fichier soit au lancement de l’éditeur, soit au moment de l’enregistrement. Une syntaxe adaptée aux noms de fichiers vous permet d’éditer la sortie d’un programme, l’entrée et la sortie standard, ou des portions de fichiers ou de matériels (devices). Voir la section Fichiers ci−dessous pour plus de détails. Une fois dans l’éditeur, vous pouvez taper du texte et utiliser des combinaisons de touches spéciales basées sur la touche Ctrl pour effectuer d’autres actions d’édition. Pour plus de détails sur ces combinaisons, lisez le reste de cette page de manuel ou tapez ^k h pour afficher l’aide.

Et maintenant, un peu de jargon informatique légèrement obscur :

Le caractère ^ signifie qu’il faut maintenir la touche Ctrl appuyée tout en appuyant sur une autre touche (de la même manière que la touche Shift fonctionne pour les majuscules).

Un certain nombre de combinaisons sont dupliquées à l’aide d’autres touches pour vous éviter d’avoir à appuyer sur la touche Ctrl :

ESC fonctionne à la place de ^[
(NdT : ^[ correspond aussi à la touche Alt, appelée plus généralement la touche Méta sur l’ensemble des différents types de claviers).
Suppr
fonctionne à la place de ^?
Retour
fonctionne à la place de ^h
Tab
fonctionne à la place de ^i
Entrée
ou Entr fonctionne à la place de ^m
Entrée
fonctionne à la place de ^j.

Certains claviers peuvent éventuellement poser problème avec quelques touches de contrôle. Les touches ^_, ^^ et ^@ peuvent habituellement être tapées sans appuyer sur Shift (essayez ^−, ^6 et ^2). D’autres claviers peuvent parfois les réassigner à d’autres touches.
Essayez : ^., ^, et ^/
^ESPACE
peut habituellement être utilisé à la place de ^@.
^\
et ^] sont interprétés par de nombreux programmes de communication, y compris telnet et kermit. Il suffit habituellement de presser deux fois la touche en question pour faire en sorte que le programme de communication laisse passer la commande.

Tapez ^k h pour afficher la première fenêtre d’aide en haut de votre écran. Vous pouvez continuer à taper et à éditer du texte pendant que la fenêtre d’aide est affichée. Pour naviguer dans les autres fenêtres de documentation, tapez F7 et F8 (ou encore ^[ . et ^[ , c’est à dire ESC . et Alt .) Utilisez ^k h pour cacher la fenêtre d’aide.

Vous pouvez personnaliser la configuration du clavier, les fenêtres d’aide et beaucoup de comportements par défaut en copiant le fichier d’initialisation de joe (normalement /etc/joe/joerc) vers $HOME/.joerc puis en le modifiant. Voir la section sur joerc ci−dessous.

Pour faire de joe votre éditeur par défaut pour le courrier électronique, l’édition d’un crontab, cvs ou Usenet, par exemple, vous devez déclarer les variables d’environnement EDITOR, VISUAL et CVSEDITOR respectivement dans le fichier d’initialisation de votre shell (.bash_profile ou .profile). (ex : pour GNU bash, ajoutez : export EDITOR=joe).

Il vous faudra peut−être ajuster un certain nombre de paramètres assez obscurs, surtout si vous pensez que votre écran de terminal ne se rafraîchit pas correctement. Voir la section Variables d’environnement ci−dessous.

PARAMÃTRES DE LIGNE DE COMMANDE

Les paramètres globaux qui peuvent être spécifiés sur la ligne de commande sont les suivants :

−asis

Les caractères avec des codes ASCII supérieurs à 127 seront envoyés tels quels au terminal, au lieu du caractère correspondant inférieur à 128 en mode inversé. Si cela ne fonctionne pas, veuillez vérifier votre serveur de terminal.

−backpath chemin

Ce paramètre permet de stocker les fichiers de sauvegarde dans le répertoire indiqué au lieu du répertoire courant de chaque fichier édité.

−baud nnn

Ajuste le taux en bauds pour l’optimisation de l’écran du terminal. Joe insère des délais pour les taux en bauds inférieurs à 19200, ce qui contourne la mise en tampon du tty pour que la pré−frappe (typeahead) puisse interrompre la sortie écran. Les commandes de défilement ne seront pas utilisées pour 38400 bauds. Ceci est très utile pour les xterms et autres tty de console qui ne passent pas par un câble série.

−beep

Joe émettra des bips en cas d’erreur de commande ou si le curseur dépasse les zones définies.

−columns nnn

Spécifie le nombre de colonnes d’écran.

−csmode

Mode de recherche continue : une recherche directement consécutive à une autre recherche répétera la recherche originale au lieu de demander une nouvelle chaîne. Ceci est très utile pour les commandes Alt s (^[ s) et Alt r (^[ r) et quand joe se prend pour emacs.

−dopadding

Joe pré−suppose qu’il existe un contrôle de flux quelconque avec le tty. Dans le cas contraire, joe enverra des ^@s supplémentaires au tty comme spécifié dans le fichier de configuration termcap. Les ^@s supplémentaires permettront au terminal de rattraper le rythme après de longues commandes.

−exask

La combinaison ^k x vérifie la validité du nom de fichier à écrire.

−force

Ce paramètre s’assure de ce que la dernière ligne de chaque fichier possède bien un retour à la ligne au moment de l’enregistrement.

−help

L’éditeur se lance avec la fenêtre d’aide activée.

−keepup

Normalement le nombre de colonnes et l’affichage des préfixes des touches Ctrl subissent un délai d’une seconde pour réduire la consommation CPU, mais avec ce paramètre, ils sont mis−à −jour à chaque fois qu’une touche est pressée.

−lightoff

La sélection en mode bloc disparaît après chaque commande de bloc.

−lines nnn

Spécifie le nombre de lignes d’écran.

−marking

Le texte entre ^k b et le curseur est sélectionné (à utiliser avec −lightoff et un fichier joerc modifié pour permettre une sélection en mode ’drop−anchor’).

−mid

Si le curseur sort de la fenêtre, celle−ci défilera pour maintenir le curseur centré. Ce paramètre est automatiquement activé dans le cas des terminaux lents qui n’ont pas de commandes de défilement.

−nobackups

Ce paramètre empêche la création de fichiers de sauvegarde.

−nonotice

Ce paramètre empêche la notice de copyright de s’afficher au démarrage de l’éditeur.

−nosta

Ce paramètre cache la ligne d’état située en haut. Très utile quand vous ne voulez voir que votre texte à l’écran ou que vous utilisez un vt52.

−noxon

Une tentative de désactivation du traitement ^s/^q. Très utile quand joe se prend pour WordStar ou emacs.

−orphan

Les fichiers supplémentaires spécifiés sur la ligne de commande seront placés dans des tampons orphelins au lieu d’apparaître sous la forme de fenêtres supplémentaires. Très utile quand joe se prend pour emacs.

−pg nnn

Spécifie le nombre de lignes à garder après PgUp/PgDn (^u/^v). Si vous passez −1 en paramètre, seulement la moitié de la fenêtre sera conservée.

−skiptop nnn

Ne pas utiliser les nnn lignes du haut de l’écran. Très utile quand joe est utilisé comme éditeur de BBS.

Tous ces paramètres peuvent aussi être spécifiés dans le fichier joerc. De plus, vous pouvez déclarer les paramètres NOXON, BAUD, LINES, COLUMNS et DOPADDING comme des variables d’environnement.

La variable d’environnement JOETERM peut aussi être déclarée. Elle se superposera à la variable d’environnement habituelle TERM pour déterminer votre type de terminal.

Les paramètres suivants peuvent être spécifiés avant chaque nom de fichier sur la ligne de commande :

+nnn

Le curseur se place directement sur la ligne spécifiée au démarrage.

−crlf

Joe utilise CR−LF comme séquence de fin de ligne au lieu de LF uniquement. Très utile pour l’édition de fichiers au format MS−DOS ou VMS.

−wordwrap

Joe active le retour à la ligne automatique pour tous les mots qui dépassent la marge de droite.

−autoindent

Si vous appuyez sur Entrée sur une ligne indentée, l’indentation est dupliquée sur la nouvelle ligne.

−overwrite

Permet de remplacer les caractères existants au lieu de les insérer.

−lmargin nnn

Spécifie la largeur de la marge de gauche

−rmargin nnn

Spécifie la largeur de la marge de droite

−tab nnn

Spécifie la largeur d’une tabulation.

−indentc nnn

Spécifie le caractère d’indentation pour ^k , et ^k . (32 pour ESPACE, 9 pour TAB).

−istep nnn

Spécifier le degré d’indentation pour ^k , et ^k ..

−linums

Affiche les numéros de lignes.

−rdonly

Le fichier reste en mode lecture seule.

−keymap nom

Utilisation d’une section alternative du fichier joerc pour les combinaisons de touches.

Ces paramètres peuvent aussi être spécifiés dans le fichier joerc. Ils peuvent tous être activés en fonction des différentes extensions de fichiers. Les codes sources (avec des extensions comme .c, .h or .p) sont auto−indentés. Le retour à la ligne automatique est activé sur les autres fichiers, mais il est désactivé pour les fichiers rc.

ÃDITION

Ãdition simple

Quand vous tapez des caractères dans l’éditeur, ils sont normalement insérés dans le fichier en cours d’édition (ou ajoutés à la fin du fichier en cours si le curseur se trouve à la fin du texte). Si vous voulez remplacer du texte existant, vous devez effacer l’ancien texte avant ou pendant la frappe du nouveau texte de remplacement. La touche Retour peut être utilisée pour effacer du texte : déplacez le curseur vers la droite après le texte que vous désirez effacer et tapez Retour autant de fois que nécessaire.

Appuyez sur Entrée ou Entr pour insérer un retour−à −la−ligne. Par exemple, si le curseur se trouve au milieu de la ligne et que vous appuyez Retour la ligne sera partagée en deux et le curseur apparaîtra au début de la deuxième ligne. Appuyez sur Retour au début d’une ligne pour éliminer un retour−à −la−ligne. Utilisez les touches fléchées pour vous déplacer au sein du fichier. Si votre clavier ne comporte pas de touches fléchées (ou si, pour une raison quelconque, vous n’arrivez pas à les faire fonctionner), utilisez ^f pour avancer (aller vers la droite), ^b pour reculer (aller vers la gauche), ^p pour revenir à la ligne précédente (aller vers le haut), et ^n pour passer à la ligne suivante (aller vers le bas).

Les touches fléchées droite et gauche déplacent simplement le curseur d’un caractère à la fois au sein du texte. Si vous vous trouvez au début d’une ligne et si vous pressez la touche fléchée gauche, vous vous retrouverez sur la ligne précédente. Les touches fléchées haut et bas déplacent le curseur d’autant de caractères que nécessaire pour qu’il apparaisse dans la même colonne que sur la ligne originale.

Si vous voulez indenter votre texte, vous pouvez utiliser la touche TAB. Cela vous permet d’insérer un caractère de contrôle spécial qui fait en sorte que les caractères suivants s’alignent au prochain TAB STOP. Les TAB STOPs se produisent normalement toutes les 8 colonnes, mais ceci peut être modifié grâce à la commande ^t d. Les programmeurs en PASCAL et en C ajustent souvent les TAB STOPs toutes les 4 colonnes.

Si, pour une raison quelconque, votre terminal part en vrille (par exemple, si vous recevez un message de la part de biff), vous pouvez rafraîchir l’affichage de l’éditeur en tapant ^k r.

Il existe beaucoup d’autres touches pour effacer du texte et se déplacer au sein d’un fichier. Par exemple, tapez ^d pour effacer le caractère actuellement placé sous le curseur au lieu d’effacer en arrière comme avec Retour. ^d vous permet aussi d’effacer un retour−à −la−ligne si le curseur se trouve à la fin de la ligne. Tapez ^y pour effacer toute la ligne sur laquelle sur trouve le curseur ou ^j pour effacer tout le texte situé entre le curseur et la fin de la ligne.

Tapez ^a pour déplacer le curseur au début de la ligne courante. Tapez ^e pour déplacer le curseur à la fin de la ligne courante. Tapez ^u ou ^v pour faire défiler le curseur d’une moitié d’écran vers le haut ou le bas. « Faire défiler » signifie que le texte bouge, mais que le curseur reste à la même place relative à l’écran. Tapez ^k u ou ^k v pour déplacer le curseur au début ou à la fin du fichier. Voir les fenêtres d’aide pour plus de commandes d’effacement et de déplacement.

Si vous faites une erreur, vous pouvez taper ^u (ou ^_) pour l’annuler. Et si vous allez trop loin dans l’annulation des frappes précédentes vous pouvez toujours « refaire » les modifications en tapant ^r (ou ^^).

Si vous modifiez une section d’un fichier, et vous devez temporairement examiner ou éditer une autre section du même fichier, vous pouvez revenir à l’endroit initial en tapant ^k -. En fait, cette commande vous ramène à l’endroit où a eu lieu la dernière modification. Vous pouvez naviguer au sein de l’historique de ces endroits avec ^k - et ^k =, de la même manière que vous pouvez naviguer dans l’historique des modifications grâce aux commandes « annuler » et « refaire ».

Une fois vos modifications terminées, tapez ^k x pour fermer l’éditeur. Il vous demandera un nom de fichier si toutefois vous n’avez pas déjà nommé le fichier en cours d’édition.

Quand vous éditez un fichier, vous n’éditez qu’une copie de ce fichier. Ainsi, si vous décidez que vous ne voulez plus des modifications faites pendant une session d’édition précise, vous pouvez simplement taper ^c pour sortir de l’éditeur sans enregistrer les modifications en question.

Si vous éditez un fichier et que vous enregistrez les modifications, une copie « de sauvegarde » de ce fichier sera créée dans le répertoire courant, et un ~ sera ajoutée à la fin du nom de fichier. Cette copie contiendra la version originale du fichier.

Retour à la ligne automatique et mise en forme

Si vous tapez du texte au−delà de la limite de l’écran dans un langage comme C ou PASCAL, l’écran défilera vers la droite pour suivre le curseur. Si vous tapez du texte au−delà de la limite de l’écran dans un fichier classique (qui ne se termine pas en .c, .h ou .p), joe activera le retour à la ligne automatique, le dernier mot de la ligne sera déplacé sur la ligne suivante pour vous éviter de taper Entrée. Ceci s’appelle le mode retour−à −la−ligne automatique. Vous pouvez désactiver ce mode grâce à la commande ^t w. Le fichier d’initialisation est configuré pour activer ce mode pour tous les fichiers qui ne sont pas des codes sources. Voir la section ci−dessous consacrée au fichier joerc pour ajuster ce paramètre.

Mis à part le mode retour−à −la−ligne automatique, joe ne met pas automatiquement les paragraphes en forme comme le font certains logiciels de traitement de textes. Si vous désirez remettre en forme un paragraphe, tapez ^k j. Cette commande justifiera le paragraphe où se trouve le curseur, en plaçant autant de mots que possible sur une ligne. Un paragraphe, dans ce cas−là , est un bloc de texte séparé du reste par une ligne vierge en haut et en bas.

Les marges utilisées par joe pour la mise en forme de paragraphes et le retour−à −la−ligne automatique peuvent être ajustées à l’aide des commandes ^t l et ^t r. Si vous donnez à la marge de gauche une valeur différente de 1, alors, quand vous commencerez à taper au début de la ligne, le curseur se positionnera automatiquement sur la marge de gauche.

Si vous voulez centrer une ligne entre les marges, il vous suffit d’utiliser la commande ^k a.

Mode remplacement

C’est parfois fatigant d’avoir à effacer le vieux texte avant ou après l’insertion du nouveau texte. C’est le cas quand vous modifiez un tableau, par exemple, et que vous voulez maintenir la position des colonnes à droite du tableau. Vous pouvez donc activer le mode remplacement avec la commande ^t t. Dans ce mode, les caractères tapés remplacent les caractères existants, un peu à la manière de la machine à écrire idéale (NdT : the ideal typewriter). De même, Retour déplace simplement le curseur vers la gauche au lieu d’effacer le caractère situé à gauche, à moins de se trouver au début ou à la fin d’une ligne. Cependant, le mode remplacement n’est pas le mode le plus naturel pour éditer du texte de manière électronique, il est donc conseillé de revenir au mode insertion aussitôt que possible en tapant ^t t à nouveau.

Si vous avez besoin d’insérer du texte quand vous êtes en mode remplacement, tapez ^@. Cela a pour effet d’insérer un ESPACE unique dans le texte.

Caractères Méta et Contrôle

Chaque caractère est représenté par un nombre. Par exemple, le nombre correspondant à ’A’ est 65 et le nombre correspondant à ’l’ est 49. Tous les caractères habituels sont compris dans la série qui va de 32 à 126 (cette correspondance arbitraire entre caractères et nombres s’appelle le jeu de caractère ASCII). Les nombres en dehors de cette série, de 0 à 255, ne sont pas habituellement affichés, mais ont parfois d’autres significations. Le nombre 10, par exemple, est utilisé pour le retour−à −la−ligne. Vous pouvez taper ces caractères spéciaux en tapant avant de spécifier un caractère dans la série ‘ @ A B C ... X Y Z [ ^ ] \ _ pour les nombres de 0 à 31, et ? pour le nombre 127.

Par exemple, si vous tapez ‘ j, vous insérez un caractère de retour−à −la−ligne, ou si vous tapez ‘ i, vous insérez un caractère TAB (la touche TAB donne le même résultat). Le 12 (‘ l) est un caractère de contrôle très utile, la plupart des imprimantes l’interpréteront comme un saut de page. Vous remarquerez que joe affiche ce caractère comme un "l" souligné. Vous pouvez taper les caractères supérieurs à 127, appelés caractères Méta en tapant ^\ avant. Ceci ajoute 128 au prochain caractère tapé (qui peut−être un caractère de contrôle). Joe affiche les caractères supérieurs à 128 en vidéo inverse. Certaines langues qui possèdent plus de lettres que l’anglais, (NdT : comme le français) utilisent des caractères Méta pour leur alphabet. Il faut mettre l’éditeur en mode −asis pour qu’ils soient passés au terminal tels quels.

Prompts

Si vous tapez TAB à n’importe quel prompt, joe essaiera d’opérer un complètement à partir des lettres fournies. S’il ne peut pas suggérer le nom complet, parce qu’il existe plusieurs possibilités, joe émettra un bip. Si vous tapez TAB une seconde fois, joe vous présentera la liste des possibilités de complètement. Vous pouvez utiliser les touches fléchés pour naviguer au sein des fichiers et répertoires présents. Appuyez sur Entrée ou ESPACE pour sélectionner un élément. Si vous tapez la première lettre d’un des répertoires, il sera sélectionné, dans le cas où plus d’une entrée commence avec la même lettre, le curseur naviguera de l’une à l’autre de ces entrées.

Si vous sélectionnez un sous−répertoire ou si vous tapez "..", le nom du répertoire sera ajouté à la fin du prompt et le nouveau répertoire ajouté au menu courant. Vous pouvez appuyer sur Retour pour retourner au répertoire précédent.

La plupart des prompts gardent un historique de toutes les entrées tapées auparavant. Utilisez les touches fléchées haut et bas pour naviguer au sein de ces historiques.

Les prompts sont en fait des fenêtres formées d’une seule ligne mais dépourvues de barre d’état ; vous pouvez donc utiliser toutes les commandes d’édition que vous utilisez ailleurs. L’historique du prompt n’est en fait composé que des différentes lignes du même « fichier de prompt ». Vous pouvez donc chercher en arrière à travers l’historique du prompt avec la commande de recherche habituelle ^k f.

Et comme les prompts sont des fenêtres, vous pouvez aussi faire basculer leur affichage avec ^k p et ^k n.

Ou suis−je ?

Tapez ^k ESPACE pour demander à joe d’afficher le numéro de ligne, de colonne et d’octet en bas de l’écran. Il affichera aussi le nombre associé au caractère sur lequel se trouve le curseur (son code ASCII). Vous pouvez configurer la ligne d’état pour afficher constamment ces données en activant les séquences d’échappement dans la section appropriée du fichier d’initialisation joerc. (Plus de détails dans la section joerc).

Opérations de fichiers

Vous pouvez taper ^k d pour enregistrer le fichier courant (sous un nom différent de l’original, si vous le désirez). Une fois le fichier enregistré, vous pouvez taper ^k e pour éditer un autre fichier.

Si vous voulez enregistrer uniquement une section bien définie du fichier courant, voir la section sur les Blocs ci−dessous.

Pour insérer un autre fichier dans le fichier courant, utilisez ^k i.

Suspension temporaire de l’éditeur

Si vous avez besoin de suspendre temporairement l’éditeur et de retourner au shell, tapez ^k z. Vous pouvez utiliser cette fonction pour arrêter l’édition de votre fichier pour répondre à un message ou pour lire cette page de manuel, par exemple (NdT : ou encore pour lire une fortune !). Il vous suffit de taper fg (ou exit) pour revenir à l’éditeur (un message vous le rappellera quand vous taperez ^k z ).

Recherche de texte

Tapez ^k f pour lancer une recherche en avant ou en arrière pour une portion de texte (une chaîne). Joe vous demandera le texte que vous désirez rechercher. Une fois que vous avez tapé Entrée, vous aurez le choix entre plusieurs options. Vous pouvez juste taper Entrée pour lancer une recherche en avant ou vous pouvez sélectionner l’une de ces options :

a (ou b) Faire une recherche en arrière

i Ignorer les différences de casse : traiter de la même manière majuscules et minuscules. Elles sont normalement considérées comme différentes.

nnn (ou nnn est un nombre) Si vous entrez un nombre, joe va chercher la n−ième occurrence du texte. Très utile pour la navigation à l’intérieur des fichiers structurés de manière plus ou moins logique.

r Remplacer du texte. Si vous choisissez l’option r, joe vous demandera le texte de remplacement. Chaque fois que l’éditeur trouvera le texte recherché, il vous demandera si vous voulez le remplacer. Vous pouvez alors taper o (ou y) pour remplacer le texte et aller à la prochaine occurrence, n pour ne pas toucher à cette occurrence mais passer à la suivante, et r pour remplacer toutes les occurrences restantes sans demander de confirmation, (selon l’option nnn ci−dessus) ou ^C pour arrêter la recherche et le remplacement.

c Bloc. Si vous choisissez l’option c, joe va limiter la recherche au bloc préalablement sélectionné.

Vous pouvez taper ^l pour répéter la recherche précédente.

Expressions régulières (regexps)

Un certain nombre de séquences de caractères peuvent être utilisées pour la recherche

\* Permet de trouver zéro ou n caractères.
Par exemple, si vous tapez A\*B, joe cherchera un A suivi de n’importe quel caractère et enfin d’un B.

\? Permet de trouver un seul caractère.
Par exemple, si vous tapez A\?B, joe trouvera AXB, mais pas AB ou AXXB.

\^ \$ Ceci permet de trouver le début et la fin d’une ligne.
Par exemple, si vous tapez \^plop\$, joe trouvera plop tout seul sur une ligne.

\< \> Ceci permet de trouver le début et la fin d’un mot.
Par exemple, si vous tapez \<\*coin\*\>, joe trouvera les mots complets qui possèdent la sous−chaîne coin.

\[...] Ceci permet de trouver n’importe quel caractère unique entre crochets.
Par exemple, si vous tapez \[Ff]oo, joe trouvera à la fois Foo et foo. Il est aussi possible de spécifier des séries de caractères entre crochets, Par exemple, si vous tapez \[A−Z], joe trouvera toutes les majuscules. Si le premier caractère donné dans les crochets est ^, joe trouvera tous les caractères qui ne figurent pas entre crochets.

\c Ceci fonctionne comme \*, mais permet de trouver une expression équilibrée en langage C.
Par exemple, si vous tapez malloc(\c), joe trouvera tous les appels de fonctions à malloc, même s’il existe une ) dans les accolades.

\+ Ceci permet de trouver zéro ou plusieurs caractères immédiatement consécutifs au \+. Par exemple, si vous tapez \[ ]\+\[ ], et que les caractères entre les crochets sont à la fois ESPACE et TAB, joe trouvera l’ESPACE.

\\ Ceci permet de trouver un \ unique.

\n Ceci permet de trouver le caractère spécial fin−de−ligne ou retour−à −la−ligne.

Un certain nombre de séquences de caractères spéciaux peuvent aussi être spécifiées dans la chaîne de remplacement :

\& Ceci est substitué par le texte correspondant à la chaîne de recherche.
Par exemple, si la chaîne de recherche était \<\*\>, et qu’elle trouve des mots, et que vous tapiez "\&", joe mettra des guillemets anglais autour de ces mots.

\0 − \9 Ceci est substitué par le texte correspondant au Nième \*, \?, \+, \c, \+, or \[...] dans la chaîne de recherche.

\\ Ceci permet de mettre un \ dans la chaîne de remplacement.

\n Ceci permet d’ajouter un retour à la ligne dans la chaîne de remplacement.

Quelques exemples concrets :

Supposons que vous avez une liste d’adresses, chacune sur une ligne séparée, qui commence par « Adresse : » et dont les éléments sont séparés par des virgules. Comme ceci :

Adresse : Prof. Wyclef ALEPHBETH, 7, Avenue Blaise Pascal, Clermont−Ferrand, France

Si vous voulez réorganiser cette liste, pour avoir dans l’ordre le pays, la ville, le nom de la personne et enfin son adresse, vous pouvez utiliser cette méthode :

Tapez ^k f pour lancer la recherche, puis tapez :

Adresse :\*,\*,\*,\*\$ pour trouver "Adresse :", les quatre éléments séparés par des virgules et la fin de ligne.

Quand joe vous donne le choix des options de recherche, tapez r pour remplacer la chaîne, puis tapez :

Adresse :\3,\2,\0,\1 Pour réorganiser les informations comme vous le voulez. Une fois votre choix confirmé en appuyant sur « Entrée », Joe lancera la recherche et changera la ligne en :

Adresse : France, Clermont−Ferrand, Prof. Wyclef ALEPHBETH, 7, Avenue Blaise Pascal.

(Attention à bien placer votre curseur avant la zone à traiter et à ne pas laisser traîner des espaces inutiles dans vos paramètres de recherche).

Blocs

Si vous voulez déplacer, copier, enregistrer ou effacer une portion bien précise de texte, vous pouvez le faire grâce aux fonctions de sélection de blocs. D’abord, il faut déplacer le curseur au début de la zone de texte sur laquelle vous voulez travailler, puis taper ^k b. Puis déplacez le curseur jusqu’au caractère situé juste après la fin de la zone de texte concernée et enfin tapez ^k k. Le texte compris entre les ^k b et ^k k devrait être sélectionné. Vous pouvez maintenant bouger le curseur à un autre endroit du document puis taper ^k m pour déplacer (NdT : couper puis coller) le texte sélectionné. Vous pouvez taper ^k c pour faire une copie du texte sélectionné et pour l’insérer là ou vous placerez le curseur. ^k y vous permet d’effacer le texte sélectionné. ^k w vous permet d’enregistrer le texte sélectionné dans un nouveau fichier.

Une commande très utile : ^k / vous permet de filtrer un bloc de texte vers une commande shell. Par exemple, si vous sélectionnez une liste de mots avec ^k b et ^k k, puis vous tapez ^k / sort, la liste de mots en question sera triée. Une autre commande très utile pour ^k /, est tr. Si vous tapez ^k / tr a−z A−Z, tous les caractères du bloc sélectionné seront changés en majuscules.

Une fois les opérations de bloc terminées, vous pouvez simplement laisser la sélection activée si cela ne vous dérange pas (évidemment, si vous tapez ^k y sans vous en apercevoir...) Si cela vous gêne vraiment, vous pouvez juste taper ^k b ^k k pour désactiver la sélection courante.

Indentation des blocs de code

Le mode auto−indentation est activé/désactivé avec la commande ^t i. Le fichier joerc est normalement configuré de telle sorte que les fichiers finissant en .p, .c ou .h soient auto−indentés automatiquement. Quand le mode auto−indentation est activé et que vous tapez Entrée, le curseur se place dans la même colonne que le premier caractère autre que ESPACE ou TAB sur la ligne d’origine.

Vous pouvez utiliser les commandes ^k , et ^k . pour déplacer un bloc de texte vers la gauche ou la droite. Si le texte n’est pas sélectionné quand vous tapez ces commandes, le bloc de code ou se trouve le curseur sera sélectionné et déplacé par des commandes ^k , et ^k . suivantes. Vous pouvez aussi configurer le nombre de colonnes que ces commandes déplacent grâce à un paramètre de ^t.

Fenêtres

Vous pouvez éditer plus d’un fichier à la fois en même temps. Vous pouvez aussi éditer simultanément au moins deux endroits différents du même fichier. Pour cela, tapez ^k o, pour partager l’écran en deux fenêtres. Utilisez ^k p ou ^k n pour déplacer le curseur d’une fenêtre à l’autre. Utilisez ^k e pour ouvrir et éditer un nouveau fichier dans une des fenêtres ouvertes. Pour fermer une fenêtre, vous pouvez soit enregistrer le fichier en cours avec ^k x ou bien annuler l’édition avec ^c. Si vous annulez un fichier affiché dans plusieurs fenêtres, le fichier ne subira pas de modifications, vous fermez uniquement une des fenêtres. (vous pourrez donc continuer votre édition dans la ou les fenêtres restantes).

Vous pouvez taper ^k o à l’intérieur d’une fenêtre pour en créer d’autres. Si vous avez trop de fenêtres à l’écran, mais que vous ne vouliez pas les fermer, vous pouvez taper ^k i. Ceci permet de limiter l’affichage à la fenêtre dans laquelle se trouve actuellement le curseur. Si vous tapez cette commande une seconde fois, joe essaiera de faire tenir toutes les autres fenêtre cachées toutes à l’écran. Si, faute de place, vos innombrables fenêtres ne peuvent pas toutes s’afficher à l’écran, vous pouvez taper ^k n sur la fenêtre située tout−en−haut ou ^k p sur la fenêtre située tout−en−bas.

Si vous avez donné plusieurs noms de fichiers en paramètres à joe sur la ligne de commande, chaque fichier sera placé dans sa propre fenêtre.

Vous pouvez aussi ajuster la hauteur de chaque fenêtre avec les commandes ^k g et ^k t.

Macros

Le système de macros de joe vous permet d’enregistrer une série d’évènements du clavier pour ensuite les « relancer » en pressant simplement deux touches affectée à cette série. Ceci est très utile pour automatiser les tâches répétitives. Pour lancer l’enregistrement d’une macro, tapez ^k [ suivi d’un chiffre de 0 à 9. La ligne d’état indiquera l’enregistrement en question. Maintenant, enchaînez la série de commandes que vous désirez pouvoir répéter. Les commandes se comporteront tout−à −fait normalement. Tapez ensuite ^k ] pour stopper l’enregistrement de la macro. Enfin, tapez ^k suivi du numéro affecté à la macro souhaitée pour lancer l’exécution de la série d’évènements du clavier en une fois.

Vous pouvez aussi taper Alt d (ou ^[ d) pour demander à joe de vous faire un « dump » complet de chaque étape des macros enregistrées dans la session en cours.

Par exemple, si vous voulez ajouter un « % » au début de chaque paragraphe d’un fichier pour mettre en forme une collection personnelle de « fortunes », vous pouvez taper :

^k [ <numéro de la macro> ^E <Entrée> % <touche fléchée bas> ^k ]

Ceci lancera l’enregistrement de la macro, vous permettra d’affecter le numéro voulu, déplacera le curseur à la fin de la ligne en cours, sautera une ligne, insérera « % », déplacera le curseur d’une ligne vers le bas puis arrêtera l’enregistrement. Puisque que nous avons inclus une commande qui se cale sur la fin de la ligne, nous pouvons réutiliser cette macro sans avoir à nous soucier de caler le curseur au bon endroit à chaque fois. (Il faut garder à l’esprit ce genre de chose quand vous enregistrez une macro : bien décomposer les actions pour que la boucle soit bien bouclée !).

Si vous estimez qu’une macro que vous enregistrez présente un trop grand nombre d’évènements, vous pouvez enregistrer une macro à l’intérieur de la macro, du moment que vous lui affectez un numéro distinct. Vous pouvez aussi exécuter une macro déjà enregistrée pendant que vous en créez une nouvelle et ainsi les faire travailler ensemble.

Répétition

Vous pouvez utiliser la commande répétition ^k \, pour répéter un nombre déterminé de fois une macro, ou n’importe quelle autre commande d’édition ou de frappe. Tapez ^k \, puis tapez le nombre de répétitions que vous désirez et enfin tapez Entrée. La prochaine commande d’édition que vous taperez sera répétée autant de fois que voulu.

Par exemple, pour effacer les 20 prochaines lignes de texte, tapez :

^k \ 20 <Entrée> ^y

Mode rectangulaire

Tapez ^t x pour pouvoir utiliser ^k b et ^k k pour sélectionner des blocs rectangulaires au lieu des blocs de texte habituels. Ce mode est très utile pour déplacer, copier et effacer des colonnes de texte. Vous pouvez aussi filtrer des colonnes de texte avec la commande ^k /, si vous voulez trier une colonne, par exemple. La commande d’insertion de fichier ^k r est aussi affectée.

Quand le mode rectangulaire est activé, le mode remplacement peut aussi être très utile. (^t t). Quand le mode remplacement est sélectionné, les rectangles remplaceront le texte au lieu d’être inséré avant. De même la commande d’effacement de bloc (^k y) effacera le rectangle sélectionné en le remplissant d’ESPACEs et de TABs au lieu de l’effacer purement et simplement. Le mode remplacement est tout spécialement utile pour la commande de filtrage de bloc (^k /), étant donné qu’elle maintient la largeur originale de la colonne sélectionnée.

Recherche de tags

Si vous éditez un gros programme en C avec de nombreux fichiers sources, vous pouvez utiliser le programme ctags pour générer un fichier tags. Ce fichier contient une liste des symboles du programme ainsi que les fichiers et les positions où les symboles sont définis. La commande ^k ; peut être utilisée pour rechercher un symbole (une fonction, une constante définie, etc.), charger le fichier ou le symbole est défini dans la fenêtre courante et placer le curseur à l’endroit où le symbole est défini. ^k ; vous demandera le symbole que vous voulez, mais cette commande utilisera par défaut le symbole sur lequel se trouve le curseur. Puisque ^k ; charge le fichier de définition dans la fenêtre courante, je vous suggère de partager au préalable votre fenêtre à l’aide de la commande ^k o, pour charger simultanément le fichier original et le fichier de définition.

Fenêtre de shell

Tapez ^k ’ pour lancer une commande de shell dans une des fenêtres de joe. Quand le curseur se trouve à la fin d’une fenêtre de shell (utilisez ^k v si ce n’est pas le cas), tout ce que vous taperez sera envoyé vers le shell au lieu de la fenêtre. Toute les sorties du shell ou des commandes lancées au sein du shell seront ajoutées à la fenêtre de shell (le curseur suivra cette sortie s’il se trouve à la fin de la fenêtre de shell). Cette commande est très utile pour garder une trace des résultats des commandes du shell − par exemple, la sortie de make, le résultat de grep sur une série de fichiers, ou des liste de répertoires de sessions FTP. Mis à part les caractères habituels, les touches ^c, Retour, Suppr, Entrée et ^d sont envoyées au shell. Tapez la commande de sortie du shell exit pour arrêter l’enregistrement de la sortie du shell. Si vous pressez ^c dans une fenêtre de shell, quand le curseur n’est pas situé à la fin de cette fenêtre, le shell est fermé.

VARIABLES D’ENVIRONNEMENT

Pour que joe puisse fonctionner correctement, vous devez ajuster correctement un certain nombre de paramètres d’environnement. La bande passante (taux en bauds) de la connexion entre l’ordinateur et votre terminal doit être spécifiée correctement pour que joe puisse mettre à jour l’écran de manière fluide et permettre une pré−frappe (typeahead) pour étendre la mise−à −jour de l’écran. Utilisez la commande stty nnn pour ajuster le tout. Le mieux est de l’ajuster au plus près de la bande passante actuelle de votre connexion. Par exemple, si vous êtes connecté via un modem à 1200 bauds, utilisez cette valeur pour stty. Si vous êtes connecté via un modem à 14.4k, mais que le serveur de terminal est limité à 9600 bauds, ajustez votre vitesse en conséquence. Le taux spécial de 38400 ou extb est utilisé pour indiquer que vous bénéficiez d’une connexion à très haute vitesse, comme une console à mémoire intégrée ou un émulateur de terminal X−Window. Si vous ne pouvez pas utiliser stty pour spécifier la bande passante réelle (peut−être à cause d’un modem qui communique avec l’ordinateur à un taux différent de celui de la ligne téléphonique), vous pouvez spécifier une valeur numérique dans la variable d’environnement BAUD à la place (utilisez setenv BAUD 9600 pour csh ou BAUD=9600; export BAUD pour sh).

La variable d’environnement TERM doit correspondre au type de terminal que vous utilisez. Si la taille (nombres de lignes/colonnes) de votre terminal est différente de ce qui est rapporté par les entrées TERMCAP ou TERMINFO, vous pouvez la spécifier avec la commande stty rows nn cols nn, ou en déclarant les variables d’environnement LINES et COLUMNS.

Joe s’attend à ce qu’il existe un contrôle de flux entre votre ordinateur et votre terminal pour utiliser le protocole question/réponse (handshaking) ^s/^q (c’est−à −dire, si l’ordinateur envoie des caractères trop rapidement vers le terminal, le terminal enverra un ^s pour stopper la sortie et un ^q pour la relancer). Si le contrôle de flux utilise un protocole question/réponse (handshaking) hors−limites ou matériel ou que votre terminal est suffisamment rapide pour se synchroniser avec la sortie de l’ordinateur et que vous vouliez faire correspondre ^s/^q à des commandes d’édition, vous pouvez spécifier la variable d’environnement NOXON pour faire en sorte que joe essaie de désactiver le protocole question/réponse (handshaking) ^s/^q. Si la connexion entre votre ordinateur et votre terminal n’utilise pas de protocole question/réponse (handshaking) et que ce dernier n’est pas assez rapide pour suivre la sortie de votre ordinateur, vous pouvez déclarer la variable DOPADDING pour faire en sorte que joe ralentisse la sortie en intercalant des caractères PAD entre les séquences de mise−à −jour du terminal.

FICHIERS

Quand joe attend un nom de fichier, que ce soit sur la ligne de commande ou dans le prompt, vous pouvez aussi taper :

!commande Utilisez ceci pour lire ou écrire des données vers ou depuis le shell.
Par exemple, tapez joe ’!ls’ pour éditer une copie de l’état de votre répertoire courant
ou bien depuis l’éditeur tapez ^k d !mail joe@FooBar.org envoyer le fichier en cours d’édition à votre ami joe.

>>fichier Utilisez ceci pour ajouter le fichier en cours d’édition à la fin de « fichier ».

fichier,DEBUT,TAILLE Utilisez ceci pour accéder à une section précise d’un fichier ou d’un périphérique (device). DEBUT et TAILLE peuvent être exprimés en décimal (ex : 123) octal (ex : 0777) ou en hexadécimal (ex : 0xFF).
Par exemple, tapez joe /dev/fd0,508,2 pour éditer les octets 508 et 509 situés sur votre premier lecteur de disquette.

Utilisez ceci pour rediriger l’entrée standard vers l’éditeur ou bien pour envoyer la sortie vers la sortie standard.
Par exemple, vous pouvez mettre joe dans un tube :
fortune −s | joe − | mail joe
, pour envoyer une petite citation profonde commentée au préalable à votre ami joe.

FICHIER joerc

Les paramètres de ^t, les écrans d’aide et les combinaisons de touches sont tous définis dans le fichier d’initialisation de joe. Si vous faites une copie de ce fichier (qui se trouve normalement dans /etc/joe/joerc) vers $HOME/.joerc, vous pourrez modifier ces paramètres à votre guise. La syntaxe du fichier d’initialisation devrait être suffisamment évidente, en effet, toutes les options sont commentées.

(NdT : pour une description des commandes des éditeurs émulés par joe, examinez la configuration des fichiers /etc/joe/jmacsrc, /etc/joe/jpicorc, /etc/joe/jstarrc et /etc/joe/rjoerc).

AUTEURS

Joe a été écrit par Joseph H. Allen (jhallen at world.std.com). Larry Foard (entropy at world.std.com) et Gary Gray (ggray at world.std.com) ont aussi contribué à la création de joe.

Envoyez vos questions, rapports de bogues (sans oublier les éventuels patchs et traductions) au mainteneur actuel :
Marek ’Marx’ Grac (xgrac at fi.muni.cz).

Vous trouverez plus de détails sur l’équipe de développement actuelle de joe à l’adresse suivante :
http://www.sourceforge.net/projects/joe−editor/

VOIR AUSSI

Pour encore plus de flexibilité dans l’utilisation de joe, vous pouvez profiter du script de complètement pour bash−completion :
Vous le trouverez dans /usr/share/doc/joe*/bash_completion. Lisez les commentaires du fichier pour savoir comment exploiter ce script.
(Et si vous utilisez zsh, vous trouverez le script correspondant localisé en français dans /usr/share/doc/joe*/zsh_completion).

Et pour plus de documentation et de ressources sur joe en français, allez faire un tour sur :
http://www.yosch.org/joe−fr/

Vous trouverez sur le site du projet joe-fr le tarball, le patch, le rpm (et son src.rpm), de la documentation sur les commandes et les raccourcis de joe, la version actuelle de ce manuel, ainsi qu’un fichier de configuration .joerc personnalisé. (avec une sélections de paramètres pour une utilisation optimale : une série de raccourcis plus intuitifs, un éditeur plus silencieux, des fenêtres d’aide ré−organisées et une collection de macros). Avec quelques liens sur le thème des éditeurs de texte en prime.

TRADUCTION

yosch (yosch.org) − Mars 2004

AVERTISSEMENT SUR LA TRADUCTION

Il est possible que cette traduction soit imparfaite ou périmée. En cas de doute, veuillez vous reporter au document original en langue anglaise fourni avec le programme.


joe(1)