Un shell propre

  • Créateur du sujet Créateur du sujet Attila
  • Date de début Date de début

Attila

Membre enregistré
13 Novembre 2004
9
0
Bonjour,

Comme vous le savez, notre langue a ses petites particularités, et plus précisément : les accents. Le noyau de l'informatique s'étant situé de l'autre côté de l'atlantique, bien souvent, nos si chers accents posent problème.
C'est bien malheureusement le cas dans notre xterm (Terminal). Comment faire pour avoir enfin un terminal propre, c'est-à-dire, qui prenne en compte nos accents, aussi bien à l'affichage, qu'à l'écriture, et notamment dans l'auto-complétion (quand on tappe ->tab pour compléter la fin d'un nom de fichier).

(Pour l'affichage, y'a bien une option sur la commande 'ls' (-F si mes souvenirs sont bons), mais ça décale les colonnes d'affichage).

Une idée :) ?
 
Je ne sais pas si cela est possible avec bash, mais ça l'est avec zsh. Un petit tuyau: il y a sur www.mosx.net une méthode pour configurer zsh vraiment très intéressante.

accents2.jpg
 
Ca ça a l'air bien; j'vais aller y jeter un coup d'oeil pour voir s'il y a possibilité de passer cette config sur bash.

Merci ^^ .
 
Je suis allé voir sur la page du lien un peu au dessus, mais je n'y pas trouvé mon bonheur.

J'ai cherché un peu partout, et voilà ce que j'ai pu trouver:
Bash utilise la fonction readline pour ses i/o , le comportement de laquelle peut être influencée par un certain fichier .inputrc (généralement situé dans /etc).

J'ai donc crée un .inputrc dans mon répertoire perso, avec le contenu suivant:
Bloc de code:
# debut .inputrc
# inputrc influe sur la fonction readline utilisee par bash

# desactive la suppression du 8eme bit
set convert-meta off

# active l'entree 8bit
set meta-flag on
set input-meta on

# conserve le 8eme bit pour l'affichage
set output-meta on
On a bien les accents dans la complétion (avec "->|" tab), et on peut taper des lettres accentuées dans le terminal.

Par contre, un affichage (ls par ex.) va remplacer les "é" par des "???", et la touche suppress ("<-") doit être utilisée deux fois pour effacer les caractères accentuées, ce qui provoque des bugs d'affichage, et donc d'utilisation ...

Vous pouvez tester, vous pourrez toujours supprimer le fichier .inputrc . Je cherche encore voir si je trouve des trucs intéressants.
 
Attila a dit:
J'ai cherché un peu partout, et voilà ce que j'ai pu trouver:
Bash utilise la fonction readline pour ses i/o , le comportement de laquelle peut être influencée par un certain fichier .inputrc (généralement situé dans /etc).
Je n'ai pas trouvé ce fichier (cherché avec find).

Attila a dit:
On a bien les accents dans la complétion (avec "->|" tab), et on peut taper des lettres accentuées dans le terminal.

Par contre, un affichage (ls par ex.) va remplacer les "é" par des "???", et la touche suppress ("<-") doit être utilisée deux fois pour effacer les caractères accentuées, ce qui provoque des bugs d'affichage, et donc d'utilisation ...

Vous pouvez tester, vous pourrez toujours supprimer le fichier .inputrc . Je cherche encore voir si je trouve des trucs intéressants.
Même chose pour moi avec Zsh. Mais si c'est seulement un souci esthétique, est-ce vraiment nécessaire? Le principal étant que les éditeurs de texte (Vim et Emacs) puissent afficher les lettres accentuées.
Il est vrai d'autre part que pour manipuler fichiers et répertoires, les lettres accentuées et les espaces ne sont pas très pratiques. C'est pourquoi je n'en mets pas dans mes noms de fichiers. Il est possible de concevoir des scripts permettant d'automatiser la modification des noms de fichiers et répertoires. J'ai fait celui-ci pour supprimer les espaces:
nospace.;) Vous pouvez lui ajouter quelques lignes pour supprimer également les accents c'est-à-dire les « ? », bien que ceci puisse s'avérer plus délicat.
 
Et bien en fait, ça tient plus de l'ordre pratique que de l'ordre esthétique, (même si c'est pénible de pas pouvoir nommer ses fichiers comme on le souhaite).
Imaginons que tu aies un répertoire qui contienne deux noms de fichiers accentués commençant pareil, par exemple : téo et téa, il te sera impossible de les "saisir" (sauf avec des bidouilles), et c'est vraiment pas très propre. Je continue à chercher une solution "clean".

Au fait, c'est normal que tu n'aies pas trouvé le fichier .inputrc dans ton /etc, ... y'en a pas sous OS X par défaut ;-p faut le créer soi-même (dans ton répertoire perso, c'est mieux pour tester ;-) )

En fait, c'est d'autant plus étrange que dans les réglages de la fenêtre de Terminal, le codage du jeu de caractères est en UTF-8 ...
 
Petite question, à tout hasard: on pourrait savoir où vous avez trouvé les sources pour le fichier ~/.inputrc ? Ça m'intéresse grandement.
Sinon, pour le reste, si jamais le hasard de mes pérégrinations me fait rencontrer une solution, je n'hésiterai pas à revenir à la charge.

En tout cas, je découvre qu'avec Mac OS X, nous ne sommes tout de même pas mal lotis par rapport à Windows où il est impossible d'avoir une configuration système pour obtenir les majuscules accentuées dans toutes les applications. Obligé d'écrire \`A, \'E et ainsi de suite en LaTeX (ou de redéfinir des touches dans Word pour ceux qui utilisent ce machin, mais ça n'est valable que dans Word).
Ou alors les spécialistes Windows de mon entourage (professionnel) sont des daubes.