Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/07/2015, à 20:09

LePetitApprenti

[RESOLU]Bug commande Vim, Fin de phrase "$" et "gm"

Bonjour,

Ici, http://ngressier.developpez.com/#ancre_vim, dans carte de référence rapide, ici, ftp://ftp-developpez.com/ngressier/ress … ef_vim.pdf,  il y a une série de commande de vim.

Il y a bien une distinction entre la commande "0" qui va au début de la ligne et ^ qui va au début de la phrase, c'est à dire la première lettre.
Mais il n y a aucune distinction "$" et "gm" les deux font exactement la même chose.
Normalement le "$" est censé allé à la fin de la ligne, c'est à dire la dernière ligne courante.

Es ce qu'il y a une commande permettant d'aller à la fin non pas de la ligne mais de la phrase, c'est a dire la dernière lettre de la ligne courante ?

Es ce que c'est un bug ?

Dernière modification par LePetitApprenti (Le 13/07/2015, à 16:48)

Hors ligne

#2 Le 12/07/2015, à 21:30

MicP

Re : [RESOLU]Bug commande Vim, Fin de phrase "$" et "gm"

Et en relisant le fichier PDF, je pense que l'erreur viens de l'interprétation de la virgule dans l'extrait suivant :

0 gm …………………début, milieu de ligne

qui aurait pu être présenté comme ci-dessous :
0………………………début
gm……………………milieu

=======
La ligne que tu utilise pour tes tests n'est peut-être pas assez longue.
Ta ligne doit sans doute se terminer au milieu de l'écran, car le "m" de "gm" est l'abréviation du mot "middle"

Pour pouvoir constater la différence entre ces commandes (g0, g^, g$, gm) utilise une longue ligne qui commence (et finit) par une série de caractères espaces,
et refais le même test après avoir réduit la largeur de la fenêtre (si tu utilise un terminal virtuel) de façon à ce que la ligne soit "wrappée".

Dernière modification par MicP (Le 12/07/2015, à 21:34)

Hors ligne

#3 Le 12/07/2015, à 21:33

Watael

Re : [RESOLU]Bug commande Vim, Fin de phrase "$" et "gm"

salut,

moi, dans la carte de référence rapide, je lis :

( ). . . . .début de la phrase précédente, suivante
0 gm. . . . .début, milieu de ligne
^ $. . . . .première, dernière lettre de la ligne


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 12/07/2015, à 21:59

LePetitApprenti

Re : [RESOLU]Bug commande Vim, Fin de phrase "$" et "gm"

Je me suis mis à la fin de la dernière ligne courante et j'ai rajouter des espaces et des tabulations.
Puis je me suis remis au début de la première lettre via ^ et ensuite j'ai refait $ je pensais rester au même endroit car la dernière lettre est toujours la même.
Mais ce n'est pas le cas j'arrive avec la commande $ en fin de la ligne et non en fin de la dernière lettre.

J'ai donc pensé que l'auteur à commis une inversion avec la commande gm qui faisais la même chose j'avais l impression.
Mais comme tu le penses MicP, ma ligne était trop petite.
J'ai refais le test avec une ligne gigantesque et tu as raison pour voir l'effet de la commande gm il faut une ligne qui dépasse le milieu de l'écran en mode pleine écran.
Sans cela la commande va à la fin de la ligne.

Mais cela ne résous pas le problème il n'y a pas de commande allant à la fin de la phrase, dernière lettre et non la fin de la ligne ?

Watael c'est ça le problème, $ ne va pas à la dernière lettre mais bien à la fin de la ligne.

Dernière modification par LePetitApprenti (Le 12/07/2015, à 22:40)

Hors ligne

#5 Le 12/07/2015, à 23:29

MicP

Re : [RESOLU]Bug commande Vim, Fin de phrase "$" et "gm"

Si la ligne est trop longue pour être affichée elle sera affichée sur plusieurs lignes <=> "wrappée".

En réduisant la largeur de la fenêtre pour que la ligne soit scindée en plusieurs lignes,
j'utilise (en mode commande), et sans mettre le "g" avant

"0"  pour positionner le curseur au début de la chaîne de caractères (même s'il y avait des caractères espaces avant).
"^"  pour positionner le curseur sur le premier caractère de la chaîne de caractères.
"$"  pour positionner le curseur juste avant le retour chariot de la fin de chaîne de caractères, même si elle est scindée.
(les touches "Home" et "End" ont le même effet que "0" et "$".)

======
"g0"  positionne le curseur sur le début de la ligne ou est affiché le curseur,
"g^"  pour positionner le curseur sur le premier caractère de la ligne ou est affiché le curseur,
"g$"  positionne le curseur sur le dernier caractère de la ligne ou est affiché le curseur, (juste avant la césure si elle avait été scindée)

"gm" positionne le curseur sur le milieu de la ligne affichée ou se trouvait le curseur en fonction de la taille de l'écran,
si la ligne est trop courte, le curseur ira au plus près du milieu => la fin de la ligne affichée…

Dernière modification par MicP (Le 12/07/2015, à 23:38)

Hors ligne

#6 Le 13/07/2015, à 13:07

LePetitApprenti

Re : [RESOLU]Bug commande Vim, Fin de phrase "$" et "gm"

Je comprends l'effet du g c'est toujours bon à prendre smile
Le "g" prend en quelque sorte en compte les dimensions de la fenêtre.
Autrement dit avec $ c'est va à la fin de la ligne, la vrai alors que "g$" c'est va à la fin de ligne que je vois.
Mais Micp il n y a donc pas de commande permettant d'aller sur le dernier caractères de la chaîne de caractères, c'est a dire comme ^ mais pas au début, à la fin ?

Hors ligne

#7 Le 13/07/2015, à 13:27

MicP

Re : [RESOLU]Bug commande Vim, Fin de phrase "$" et "gm"

Si j'essaie de reformuler ce que j'ai compris, il s'agirait d'aller sur le dernier caractère de la chaîne de caractères mais qui ne soit pas un caractère espace ( ou autre caractère de séparation, tabulation etc. <=> whitespace character ).
mais je ne connais pas assez bien vim pour savoir s'il existe un raccourci pour ça.

=======
EDIT : Ok, si j'ai bien compris la demande, le raccourci serait "g_" (g suivit du caractère underscore : Caractère sous le "8" de la partie alphanumérique du clavier).

Il me semble que (sans le "g")  "^" est équivalent à "_"
Donc :
"_"  premier caractère "non-whitespace" de la chaîne de caractères
"g_"  dernier caractère "non-whitespace" de la chaîne de caractères

=======
NOTES : Pour pouvoir différencier les lignes affichées scindées de celles qui ne le sont pas, on peut faire afficher les numéro de lignes avec ":set number" ( <=> ":set nu") ou/et  désactiver le "wrapping" avec ":set nowrap"
Voir :
":h nu" <=> ":help number"
":h wr" <=> ":help wrap"
":h _"
":h g_"
etc…

Dernière modification par MicP (Le 13/07/2015, à 14:51)

Hors ligne

#8 Le 13/07/2015, à 16:40

LePetitApprenti

Re : [RESOLU]Bug commande Vim, Fin de phrase "$" et "gm"

C'est cela le raccourci que je cherchais "g_"
J'affiche déja les numéros de lignes avec set number cette option est hyper pratique avec vim surtout avec le raccourci, NumLigneG, ex 10G.
MicP merci encore !!!

Dernière modification par LePetitApprenti (Le 13/07/2015, à 16:43)

Hors ligne

#9 Le 13/07/2015, à 21:00

MicP

Re : [RESOLU]Bug commande Vim, Fin de phrase "$" et "gm"

Merci à toi aussi : J'en ai profité pour apprendre de nouvelles choses smile
Et merci aussi à Watael

Dernière modification par MicP (Le 13/07/2015, à 21:03)

Hors ligne