Une chose qui m'a toujours dérangé dans vi / vim :
Si je "tire" (alias "copier") du texte, puis je me déplace à un autre endroit du fichier et je fais un "collage", mon curseur reste au début du texte que je viens de coller. C'est différent de ce que font la plupart des éditeurs modernes, qui est de placer le curseur à la fin du texte que j'ai collé.
Par exemple, en supposant que le "tampon de copie" contient le mot "génial" que je veux coller après le mot "an" dans la phrase:
This is an editor
Dans, par exemple, gedit , après le collage:
This is an awesome editor
^ Cursor is here
Dans vi :
This is an awesome editor
^ Cursor is here
Puis-je changer vi pour agir comme (par exemple) gedit à cet égard?
Réponses:
Dans vim, utilisez
gp
etgP
au lieu dep
etP
pour laisser le curseur après le texte collé. Si vous souhaitez échanger les liaisons, mettez les lignes suivantes dans votre.vimrc
:Curieusement, dans vim,
p
etP
laissez le curseur sur le dernier caractère collé pour un tampon de caractères, même en mode compatible.Je ne sais pas comment changer cela dans d'autres versions de vi.
la source
Je suis presque sûr que c'est par conception. Si vous collez en utilisant "p" (minuscule P), il est censé coller après la position ou la ligne actuelle. Cependant, si vous collez à l'aide de "P" (P majuscule), il est collé avant la position ou la ligne actuelle. Si votre comportement souhaité est d'avoir le curseur à la fin de votre texte nouvellement collé, essayez de prendre l'habitude d'utiliser "P" au lieu de "p".
Je parie que si vous avez creusé assez profondément, vous pourriez trouver une recette vim à mettre dans votre .vimrc qui déplacerait toujours le curseur à la fin de votre pâte, même si vous utilisez "p".
la source
P
laisse le curseur au début du texte collé dans vi (au moins dans nvi et par POSIX).