|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : mai 2004 Messages : 68 ![]() |
Bonjour à tous,
J'espere que ma question est au bon endroit Voila mon probleme : j'ai une liste de valeurs : et j'aimerais arriver au résultat suivant : Code :
j'arrive a obtenir mais je ne sais pas comment obtenir le résultat souhaité Existe t'il une commande de ce style ? J'espère avoir été clair, merci d'avance... |
||
|
|
00
|
|
|
#2 | ||
|
Membre éprouvé
![]() Inscription : mai 2005 Messages : 373 ![]() |
oui presque
mais attention aux lignes vides avec le .* de la selection Code :
le & repose ce qui est pris à substituer les \ protegent les caracteres de poctuation et de coding de toute interpretation puisqu'ils doivent etre traites en caractere et non en commande...
__________________
Comité de lutte contre le langage SMS sur les forums Veuillez écrire dans un langage compréhensible par les humains, merci. |
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mai 2004 Messages : 68 ![]() |
C'est exactement ce dont j'avais besoin, merci beaucoup !
![]() edit : et merci pour la précision concernent les \ |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : mai 2005 Messages : 373 ![]() |
quand on goute à vi on ne peut plus s'en passer c'est ce qu'il y a de mieux...
ta future bible / ton livre de chevet
__________________
Comité de lutte contre le langage SMS sur les forums Veuillez écrire dans un langage compréhensible par les humains, merci. |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() ![]() Inscription : juillet 2003 Messages : 2 055 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : mai 2004 Messages : 68 ![]() |
Merci pour le conseil, je regarderai ca dès ce soir
|
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2003 Messages : 4 323 ![]() |
Cela gardera l'indentation (au pire, un ":%normal! ==" réindentera tout) et ne rajoutera pas d'espaces superflus.
Pourquoi tous ces backslashs ? Même si c'est à progammer (pour exécuter via exe), il suffit de les rajouter automatiquement et au dernier moment avec escape(). Et je n'en vois aucun à mettre ici: Code :
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
||
|
|
00
|
|
|
#8 | |||
|
Membre éprouvé
![]() Inscription : mai 2005 Messages : 373 ![]() |
Citation:
__________________
Comité de lutte contre le langage SMS sur les forums Veuillez écrire dans un langage compréhensible par les humains, merci. |
|||
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2003 Messages : 4 323 ![]() |
O_o
Qu'appelles-tu partout ? J'écris ce genre de choses pour vim (puisque le sujet parles explicitement de gvim) sous linux, windows et solaris sans difficultées. Et a priori, ce n'est même pas lié au réglage de 'magic' vu que tu backslashais aussi la chaine de remplacement. C'est pour ceux qui tournent toujours en mode compatible (je n'en ai encore jamais compris l'intérêt) ?
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
|
|
00
|
|
|
#10 |
|
Membre éprouvé
![]() Inscription : mai 2005 Messages : 373 ![]() |
toute la branche BSD, TRU64, SCO, HPUX AIX ...etc....ainsi que certains linux
c'est aussi vrai pour la nouvelle version de vim 7.xx (actuellement dispo en beta seulement).... en mode VIM (pas vi) ça ne passe pas et à forciori sous vi standard. ça ne marche pas nom plus en mode scripting (-c) de vi, ni vim....même sous linux
__________________
Comité de lutte contre le langage SMS sur les forums Veuillez écrire dans un langage compréhensible par les humains, merci. |
|
|
00
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2003 Messages : 4 323 ![]() |
Que te renvoie :version ?
Pour le mode scripting, c'est normal qu'il faille banaliser la chaine pour que le shell ne la transforme pas. Et encore, en passant via perl, ou en utilisant des tableaux, il doit y avoir moyen de ne pas banaliser les guillemets. Depuis vim, tu n'as aucune raison de banaliser les caractères de remplacement -- en particulier espace, parenthèses et =. Seuls des trucs comme \ze peuvent ne pas être conus en mode compatible.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
|
|
00
|
|
|
#12 |
|
Membre éprouvé
![]() Inscription : mai 2005 Messages : 373 ![]() |
mouais pas convaicu le standard c'est le standard...
__________________
Comité de lutte contre le langage SMS sur les forums Veuillez écrire dans un langage compréhensible par les humains, merci. |
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : mai 2004 Messages : 68 ![]() |
Je ne pensais pas déclencher une polémique
Merci Luc Hermitte, cette solution marche chez moi. Si j'ai bien compris, tu substitues à partir du premier caractere "non blanc", jusqu'au dernier de la ligne, tu stoppes à ce niveau la, et tu inclus les caracteres blanc de la fin de la ligne après le \ze pour qu'ils soient effacée... J'ai juste ? Visiblement, au lieu de faire tu fais Pour quelle raison ? |
|
|
00
|
|
|
#14 |
|
Membre éprouvé
![]() Inscription : mai 2005 Messages : 373 ![]() |
C'est pas polemique mais une question de détails car ça ne marche pas partout il faut rester en standard c'est tout... et eviter les solutions non-viable-partout... mais ce n'est qu'un avis personel rien de plus ...
de plus nous sommes (me semble t il ) resté cordiaux non
__________________
Comité de lutte contre le langage SMS sur les forums Veuillez écrire dans un langage compréhensible par les humains, merci. |
|
|
00
|
|
|
#15 | |
|
Membre du Club
![]() Inscription : mai 2004 Messages : 68 ![]() |
Citation:
C'est simplement que je ne pensais pas que mon petit probleme de débutant allait déboucher sur des questions qui me dépassent completement |
|
|
|
00
|
|
|
#16 | ||||
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2003 Messages : 4 323 ![]() |
Justement.
Code :
En particulier, tu verras qu'utiliser \= en début de chaine de remplacement aura des effets particuliers. Essaies donc ceci Code :
Pour en revenir au mode scripting externe, il faut bien voir que taper ce qui suit sous bash c'est comme taper la même chose, dans vim, sans les guillemets, ni le backslash. Les paramètres sont d'abord interprétés par le shell, ici ils n'arrivent jamais jusqu'à l'exécutable. Il est vite fait d'écrire un script shell, ou un prog en C ou C++ pour afficher les paramètres véritablement reçus par l'exécutable invoqué depuis le shell. Pour avoir quelque chose qui soit équivalent à ce que tu tapes sous vim, il faudrait doubler le backslash, et banaliser le guillemet. Si vim se comportait comme tu l'attendais, c'est parce qu'il ignore les backslashs superflus. Ils ne seraient véritablement pris en compte que si ils correspondaient à un des cas documentés dans |sub-replace-special|. Et effectivement, on est parfaitement cordiaux. Je suis parfaitement d'accord avec son approche de faire des trucs portables (je fais parti de ceux qui se prennent le choux à faire des plugins tournant sous *nix comme sous windows -- je méprise juste ceux qui tournent en mode compatible pour lesquels la notion de plugin n'existe de toutes façons même pas), c'est juste que nous n'avons visiblement pas la même lecture de la doc de vim. 8) Concernant \ze, c'est un marqueur propre à vim (:h /\ze) utilisé pour définir que tout ce qui suit est considéré comme ne faisant pas parti de la chaine qui a été matchée par le motif de recherche. Pour s/pat/repl/, s#pat#repl#, s§pat§repl§, ..., ce n'est qu'une question de goûts, et parfois de praticité. Quand un caractère comme le slash intervient dans le pattern ou dans la chaine de remplacement, on évite de l'utiliser comme délimiteur entre les paramètres de :substitute. Pareil que sed et les autres.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
||||
|
|
00
|
|
|
#17 |
|
Membre du Club
![]() Inscription : mai 2004 Messages : 68 ![]() |
Merci beaucoup d'avoir pris le temps de m'expliquer tout ca, je commence à mieux cerner les possibilités et les subtilités de ce simple (?) ":s" !
(et vous m'avez fait gagner un temps fou en répondant à ma question initiale |
|
|
00
|
|
|
#18 | |||||
|
Membre Expert
![]() ![]() Inscription : décembre 2002 Messages : 1 423 ![]() |
Citation:
maitre vi de www.developpez.comJe me rend compte que j'utilise vi à 0,05% de ses capacités !
__________________
Reportage d'Arte sur Linux |
|||||
|
|
00
|
|
|
#19 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2003 Messages : 4 323 ![]() |
Citation:
Et je doute qu'il y ait beaucoup de monde qui maitrise cette bête à plus de 70%. Quant à :substitute, il s'agit de la commande qui a fait que je me suis, difficilement, attaché à vi. Cette commande est énorme. Les besoins grandissant, je suis passé à vim.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com