À Vim, je voudrais revenir sur un mot. L'opposé de `w`

207

Lorsque vous utilisez vim, vous pouvez avancer mot à mot avec w. Comment revenir en arrière?

joslinm
la source
8
viemu.com/vi-vim-cheat-sheet.gif Cela a beaucoup de clés vim dans un format graphique facile. Je recommande fortement de l'imprimer et de l'avoir à côté de votre ordinateur si vous comptez beaucoup utiliser Vim.
Sam Brinck
1
Voir aussi: stackoverflow.com/questions/5125270/… si vous souhaitez revenir en arrière à la fin du mot précédent - en utilisant ge et gE
arcseldon

Réponses:

283

Utilisez bpour revenir en arrière.

Vous pouvez également vouloir extraire Wet Bavancer / reculer un WORD(qui consiste en une séquence de caractères non vides séparés par un espace blanc, selon :h WORD).

gefei
la source
42
Par souci d'exhaustivité ge, nous reculerons jusqu'à la fin d'un mot. gEira à la fin d'unWORD
Peter Rincker
4
@Peter Rincker: et eet Eira de l'avant.
Benoit
1
Quelle est la différence entre b et B? Ou w et W? Le comportement semble le même.
Casey Patton
@CaseyPatton: les versions majuscules traitent toute séquence d'espaces non blancs comme des mots; minuscule est similaire à \w|\S. Voir :help wordet :help WORDpour plus de détails.
rninty
Il convient également de considérer ge et gE pour revenir en arrière à la fin du mot précédent. Voir aussi stackoverflow.com/questions/5125270/…
arcseldon
79

Cela m'aide à y penser comme:

b aller au début du mot actuel ou précédent

w aller au début du mot suivant

e aller à la fin du mot actuel ou suivant

ge aller à la fin du mot précédent

Essayez :h word-motionspour plus de détails et comment les combiner avec les opérations.

Steve McKinney
la source
7

utilisez "b" pour reculer - juste testé dans vi - fonctionne très bien.

Lapsus
la source
2

Sinon, si vous utilisez w, b, Wet Baux lignes Navigate en espérant sur les mots, considérez les alternatives suivantes qui peuvent être plus rapides si elles sont utilisées correctement.

f<char>    # jump to next occurrence of <char> to right (inclusive)

ou

F<char>    # jump back to next occurrence of <char> to left (inclusive)

Si vos mots sont séparés par des espaces

Si vos mots sont séparés par, <space>vous pouvez sauter les mots par des espaces:

f<space>;;;;;répète la commande précédente, donc vous sautez en avant par des espaces

F<space>;; sauter en arrière par l'espace

Si vos mots sont séparés par des signes de ponctuation et non par des espaces

il suffit de remplacer <char>par la ponctuation, par exemple.

La méthode de ponctuation n'est pas efficace pour faire défiler, mais si vous savez où vous voulez sauter, elle peut généralement y arriver en un ou deux sauts.

frère-bilo
la source