IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Indentation script shell


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut Indentation script shell
    Bonjour,

    J'ai remarqué depuis longtemps que tous les scripts shell issus de package ou d'applications sont indentés "bizarrement".

    Quand je crée un script shell, j'utilise la touche tabulation mais la plus part des scripts shell sont indentés avec un espacement de 4-5 espaces, plus petit que l'espacement d'une tabulation...

    Est-ce que quelqu'un sait comment sont rédigés ces scripts shell par hasard ?
    Ou est-ce que les codeurs s'amusent à taper 4 fois sur espace à chaque fois pour indenter leur code ?

    Encore une question existentielle !

    Merci
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Bonjour,

    j'ai google-é «vim tabulation 4 espaces»
    vim.wikia.com donne une réponse pour vim.

    l'équivalent existe certainement pour emacs.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Par défaut
    Je pense que beaucoup d'éditeur proposent une option pour utiliser une tabulation ou N espaces pour l'indentation.

    Sans être spécifique au shell, Python recommande des indentations de 4 espaces (les indentations sont un peu importantes en python ) et Ruby propose des indentations de 2 espaces par exemple...

    En fait, c'est un peu vieille école d'utiliser l'indentation avec tab (excepté sur les Makefiles, bien entendu) !

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Citation Envoyé par lavazavio Voir le message
    Quand je crée un script shell, j'utilise la touche tabulation mais la plus part des scripts shell sont indentés avec un espacement de 4-5 espaces, plus petit que l'espacement d'une tabulation...
    Ça arrive tout-à-fait !

    Mais d'une manière générale, une tendance générale consiste à remplacer toutes les tabulations par des espaces dans un code source, justement parce qu'on ne peut plus garantir que la largeur de celles-ci soient la même partout.

    Plus précisément, les « tabulations » servent à la base à organiser des informations sous forme de « table ». C'est donc une demande explicite à passer à la colonne suivante et c'est aussi pour cela que les tableurs les reconnaissent directement.

    Maintenant, s'il s'agissait uniquement d'indenter des paragraphes, cela ne poserait pas de problème, mais étant donné l'organisation des codes sources comtemporains, une mauvaise valeur désorganise complètement leur mise en page.

    C'est pourquoi les éditeurs telles que vim, par exemple, proposent des commandes comme :expandtab et :retab qui permettent respectivement de générer des espaces à la place du caractère 09 quand on saisit une tabulation, et de réécrire les tabulations dans le texte selon le format actuel.

    La plupart des codes source fournis aujourd'hui sont donc organisés avec des espaces, de façon à garantir que le code final sera toujours affiché de la même façon partout pour autant que l'on utilise une police à chasse fixe.

  5. #5
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    Merci beaucoup pour ses explications.

    En effet, le faits de remplacer les tabulations par des espaces va m'éviter beaucoup de désagréments !

    Je suis moins bête maintenant .
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    C'est pourquoi les éditeurs telles que vim, par exemple, proposent des commandes comme :expandtab et :retab qui permettent respectivement de générer des espaces à la place du caractère 09 quand on saisit une tabulation, et de réécrire les tabulations dans le texte selon le format actuel.
    Salut

    Je ne connaissais pas ces spécifications vim. Ca va me servir (surtout :retab). Merci de l'info

    Citation Envoyé par lavazavio Voir le message
    En effet, le faits de remplacer les tabulations par des espaces va m'éviter beaucoup de désagréments !
    Chacun sa façon de voir. Moi j'ai mis :set ts=4 et les tabulations de mes scripts sont toutes à 4 positions. Et en le mettant dans le fichier .exrc c'est automatiquement activé quand j'appelle vim/gvim...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Chacun sa façon de voir. Moi j'ai mis :set ts=4 et les tabulations de mes scripts sont toutes à 4 positions. Et en le mettant dans le fichier .exrc c'est automatiquement activé quand j'appelle vim/gvim...
    Tu peux également déposer des fichiers dans « ~/.vim/ftplugin/<typedefichier>.vim ».
    Ainsi, je passe automatiquement :ts à 4 lorsque j'ouvre des fichiers *.c ou autre, et laisse la largeur par défaut dans les autres cas.

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Tu peux également déposer des fichiers dans « ~/.vim/ftplugin/<typedefichier>.vim ».
    Ainsi, je passe automatiquement :ts à 4 lorsque j'ouvre des fichiers *.c ou autre, et laisse la largeur par défaut dans les autres cas.
    Joli.
    Les choses évoluent tellement vite ...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script shell
    Par anzar dans le forum Linux
    Réponses: 4
    Dernier message: 03/12/2004, 14h41
  2. [JSP] script shell
    Par goolix dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/08/2004, 09h08
  3. Exécution d'un script shell
    Par Manu0086 dans le forum Linux
    Réponses: 8
    Dernier message: 15/06/2004, 16h31
  4. Explication script shell
    Par crasho007 dans le forum Linux
    Réponses: 2
    Dernier message: 14/06/2004, 13h54
  5. Cron + terminal + script shell
    Par nicolas.pissard dans le forum Linux
    Réponses: 3
    Dernier message: 17/03/2004, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo