Sous tcsh le mécanisme de completion des noms a été amélioré. Ce shell peut compléter les noms des fichiers, des commandes et des variables. De plus la completion des noms de fichiers est programmable !
La completion est déclenchable par la touche <TAB>, bien que par compatibilité ascendante avec csh, la touche <ESC> reste opérationnelle.
Contexte de variables : Il faut utiliser le préfixe $ (il change le contexte de la completion) :
$ set varia_1=10 $ echo $var<TAB> $ echo $varia_1 <ENTREE> 10
Cette commande permet l'édition des commandes en ligne dans un buffer au moyen des contrôles associés aux éditeurs classiques d'Unix, à savoir vi ou emacs. Utilisée seule, elle retourne la liste des associations clés/commandes.
Le positionnement par défaut est souvent le mode emacs, il est déterminé à la compilation. La variable version permet de connaître la version de la commande ainsi que les options de compilation. Dans l'exemple suivant, l'absence de la clé vi, permet d'affirmer que le mode par défaut est emacs.
$ echo $version tcsh 6.12.00 (Astron) 2002-07-23 (i386-intel-FreeBSD) options 8b,nls,dl,al,kan,s m,rh,color,dspm,filec
Cette commande permet aussi de commuter entre le mode vi et le mode emacs.
$ bindkey -e # mode emacs $ bindkey -v # mode vi
Dans le tableau suivant, nous présentons un sous-ensemble des commandes d'édition :
Tableau 13. Quelques couples clé/commande en mode emacs
| Clé | Commande |
|---|---|
| ^A | Positionne le curseur en début de ligne |
| ^B | Recule horizontalement le curseur d'un caractère |
| ^E | Postionne le curseur en fin de ligne |
| ^L | Efface l'ecran |
| ^K | Coupe tous les caractères à la droite du curseur |
| ^T | Transposition de caractères |
| ^M | Nouvelle ligne |
| ^U | Efface toute la ligne |
| ^C | Signal d'interruption |
| ^Z | Signal de suspension |
| Backspace | Efface le premier caractère situé à gauche du curseur |
| Flèche gauche | Déplacement d'un caractère à gauche du curseur |
| Flèche droite | Déplacement d'un caractère situé à droite du curseur |
| Flèche haut | Remonte dans l'historique des commandes (vers les commandes les plus anciennes) |
| Flèche bas | Descend dans l'historique des commandes |
Ce mécanisme est déclenché en postionnant la variable (interne) tcsh correct (valeurs possibles cmd ou all) :
$ set correct = cmd $ lzss test.csh # ooops typo ! CORRECT>less test.csh (y|n|e|a)? yes # frappe de la touche y ou <ESPACE> #!/bin/csh # lecture et affichage du fichier echo '\nJe suis le programme $0 : ' $0 ...