Indenter plusieur ligne d'un script ?

Indenter plusieur ligne d'un script ? - Linux et OS Alternatifs

Marsh Posté le 16-04-2005 à 20:16:56    

je suis en train de me faire un petit script en bash sous vi et parfois j'oublie de mettre une condition, un if pour une partie du code.  
 
J'ai alors ouvert mon code avec gedit, selectionné la partie de code à indenter puis j'ai appuyé sur <tab>.
 
Mais voila cela m'a effacé m'a partis de code au lieu de me l'a décalé.
 
Comment faire ??
 
Je suis sous Gnome/Ubuntu Warty  
 
Ne me dites qu'il faille que j'installe un éditeur KDE :( pour faire ca

Reply

Marsh Posté le 16-04-2005 à 20:16:56   

Reply

Marsh Posté le 16-04-2005 à 20:42:06    

Tu utilises vim pour faire de l'édition basique et tu veux gedit pour des fonctionnalités? Tu es bizarre toi [:petrus75]  
 
Dans vim, en mdoe commande, si par exemple tu veux réinventer de la ligne 5 à la ligne 66, tu peux faire:

5G=66G


5G veut dire "aller à la ligne 5"
= veut dire "réindenter la ligne"
66G veut dire "jusqu'à la ligne 66"
 
Tu peux te dispenser du 5G si le curseur est déjà à la ligne 5, bien sûr.
 
Tu peux, par exemple, réindenter seulement les 10 prochaines lignes:

10=[entrée]


 
Tu peux aussi réindenter tout le fichier avec

1G=G


 
Note que ceci réindente en tenant compte de la syntaxe. Si tu veux juste décaler d'un niveau d'intention:

10>[entrée]

(et < pour réduire le niveau d'intention bien sûr)
 
Tu peux utiliser =, > et < en mode visual, si tu préfères.

Reply

Marsh Posté le 16-04-2005 à 21:47:03    

ahh la, chapeau
merci pour l'info
 
10=[entre] n'a aucun effet...
Je ne comprends pas trop l'utilité si ca "bousille" l'indentation

Reply

Marsh Posté le 16-04-2005 à 22:08:42    

weed a écrit :

10=[entre] n'a aucun effet...
Je ne comprends pas trop l'utilité si ca "bousille" l'indentation

Ça ne bousille rien du tout :o  
Exemple:

for a in $foo
do  
    if [ $a -eq 3 ]  
 then
echo barrrrrrrrrr
                         else
        echo bazzzzzzzzzz
    fi  
done

(exemple de qualitay [:petrus75] )
 
Tu réindentes les 3 lignes mal foutues avec = et

for a in $foo
do  
    if [ $a -eq 3 ]  
    then
        echo barrrrrrrrrr
    else                  
        echo bazzzzzzzzzz    
    fi                    
done

C'est vrai qu'en général on réindente carrément tout le fichier, mais ça peut servir en cas d'inentations bizarre.

Reply

Marsh Posté le 17-04-2005 à 00:02:52    

au fait es tu sur que ce soit le nombre et apres le signe, car chez moi cela ne marche pas c'est plutot le signe et apres le signe :
 

Code :
  1. >10


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed