Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Programmation.autre : vim & indentation fichiers source

Posté par Remi (Jabber id, ) le 30 janvier 2008

salut à tous;



bossant à plusieurs sur des sources C, je me retrouve avec des fichiers mal indentés, et c'est pas évident à lire :/



j'utilise vim, et j'ai trouvé la superbe commande qui permet de ré-indenter mon fichier correctement via la commande :

gg=G.



Cependant, mon indentation est de 8 espaces, et j'aurai voulu qu'elle soit de 4.



Comment bien régler cela ?

Plus généralement, comment bien régler :

- l'indentation à 4 espaces

- faire que mes lignes ne fassent pas plus de 80 caracteres (par ex..)

- comment voir la valeur des champs "tabstop" par ex ?



dans mon fichier .vimrc, j'ai les settings suivants :

- set tabstop=4

- set expandtab



Merci !

> Lire le message (12 commentaires, moyenne: 2,7).  

Vous avez demandé le commentaire #900188.

mon .vimrc

Posté par Adrien (Jabber id, ) le 30/01/2008 à 13:46. (lien). Évalué à 4.

Pour avoir des lignes de 80 caractères ajoute dans le .vimrc :
set textwidth=80
Et pour avoir une indentation de 4 espaces, il vaux mieux rajouter :
set shiftwidth=4

  • [^]Re: mon .vimrc

    Posté par Remi (Jabber id, ) le 30/01/2008 à 14:27. (lien). Évalué à 1.

    merci,

    textwidth fonctionne bien, j'ai bien 4 espaces

    par contre, pour textwidth, comment cela fonctionne-til ?
    ce parametre est-il pris en compte lors de la ré-indentation auto ? J'ai pas l'impression.. ?

    • [^]Re: mon .vimrc

      Posté par Etienne () le 30/01/2008 à 14:56. (lien). Évalué à 4.

      ce parametre est-il pris en compte lors de la ré-indentation auto ? J'ai pas l'impression.. ?
      textwidth n'est pas pris en compte au moment de la réindentation de tout un fichier, tous simplement parceque l'indentation n'est pas un formatage, cette fonction va juste définir le nombre d'espaces ou de tabulations rajouter en début de ligne, ni plus ni moins.

      Si tu veux vraiment couper les lignes à 80, il vaut mieux utiliser un indenteur tel que indent (ou bcpp plus adapté au C++) qui offrent un paramétrage beaucoup plus fin. Il est facile de filtrer le code avec
      :%!indent

      Tu peux même automatiser l'indentation à l'ouverture d'un fichier .c ou .h avec, dans le vimrc


      au BufRead *.c,*.h :silent %!indent -kr -ts4 -l80 -lc80


      Il faut que tu vois quelle option tu veux passer à indent ou créer ton fichier indent.pro


      Etienne

      • [^]Re: mon .vimrc

        Posté par Azollyx Horaldius (Jabber id, page perso, ) le 02/02/2008 à 17:13. (lien). Évalué à 1.

        Est-ce qu'il y a un moyen d'effectuer une commande lors de l'enregistrement d'un certain type de buffer ?

      [^]Re: mon .vimrc

      Posté par Ernest H (Jabber id, ) le 30/01/2008 à 15:08. (lien). Évalué à 6.

      Tu as découvert gg=G qui te réindente tout ton fichier, découvre maintenant gggqG qui te "wrappe" tout ton fichier au nombre de caractères donné par textwidth. Mais aussi gqap qui te wrappe un paragraphe ou gqq qui te wrappe une ligne.

      En résumé, = indente et gq formatte.

      Et pour qu'il wrappe pendant que tu tapes, regardes ':help formatoptions'.