J'essaie de clarifier cela dans le livre OReilly sur Vim, mais les exemples présentés ne sont pas assez clairs. Une clarification via des exemples/cas d'utilisation au lieu d'une explication directe serait très utile.
L'exemple de texte pourrait être:
With a
screen editor,
you can
scroll the page, move the cursor.
Supposons que vous avez foo
dans le document et que le curseur se trouve sur f
.
Maintenant, en appuyant sur rb
cela changera en boo
, et vous êtes de retour en mode commande. Appuyer sur sb
accomplira la même chose, mais vous êtes en mode insertion et pouvez insérer plus de caractères. Enfin, c
nécessite une sorte de mouvement; par exemple. vous pouvez taper cw
pour supprimer l'intégralité de Word et passer en mode insertion. En revanche, cl
est essentiellement identique à s
.
:help c
:help s
:help r
Facile.
Au lieu de perdre votre temps sur ce livre, découvrez comment utiliser la documentation interne impressionnante de Vim:
:h s
:h :command
:h 'option'
:h function()
:h ctrl-x
:h i_ctrl-x
:h subject
:h foo<Tab>
:helpgrep foo
s
(s ubstitute) supprimera le caractère courant et placera l'utilisateur en mode insertion avec le curseur entre les deux caractères environnants. 3s
, par exemple, supprimera les trois caractères suivants et placera l'utilisateur en mode insertion.
c
(c hange) prend un mouvement vi/vim (tel que w
, j
, b
, etc.) . Il supprime les caractères de la position actuelle du curseur jusqu'à la fin du mouvement. Notez que cela signifie que s
est équivalent à cl
(la documentation Vim elle-même prétend que ce sont des synonymes).
r
(r eplace) ne passe jamais du tout en mode insertion. À la place, il attend un autre caractère, qu'il utilisera ensuite pour remplacer le caractère actuellement sous le curseur.
Prenez votre exemple de texte et l'image du curseur au début du mot "can
" (ligne 3).
Taper spl<Esc>
dans vi/vim.
Ici, nous avons s
pour s ubstitute. pl
est le texte à insérer et <Esc>
quittera le mode d'insertion. Ensemble, il changera can
en plan
comme ceci:
With a
screen editor,
you plan
scroll the page, move the cursor.
Taper cwcould<Esc>
dans vi/vim.
c
est pour c hange, et w
indique à c
de supprimer le prochain mot, can
. Ensuite, nous tapons le texte pour le mode d'insertion, could
. Enfin, nous devons taper <Esc>
pour quitter le mode d'insertion. La commande changera can
en could
comme ceci:
With a
screen editor,
you could
scroll the page, move the cursor.
Taper rf
dans vi/vim.
Ici, nous tapons r
pour r eplace, puis f
comme nouveau caractère que r
utilise pour remplacer le caractère d'origine par. Cela change can
en fan
comme ceci:
With a
screen editor,
you fan
scroll the page, move the cursor.
Il existe de nombreuses utilisations cachées des commandes simples de vi/vim qui mettent en évidence plus de différences entre ces commandes. Comme j'utilise presque toujours vim sur vi, ces fonctionnalités peuvent être exclusives à vim, je n'en suis pas certain.
Maximiser l'utilité de commandes comme c
, y
et d
qui prennent des mouvements nécessite d'avoir une bonne compréhension des objets texte (type help text-objects
in vim. Ce ne sont pas dans vi.)
Comme r
prend un caractère au lieu de passer en mode insertion, vous pouvez saisir des caractères qui seraient autrement difficiles à ajouter. Taper r<C-R>
(c'est r
, puis ctrl -r
) remplace le caractère actuel par un caractère ctrl-r. Cela peut être surprenant car appuyer sur ctrl-r en mode insertion attend une autre touche qui est le registre à coller.
Ces trois commandes peuvent être répétées avec le .
commande, substituant, changeant ou remplaçant la même région par rapport au curseur par le texte donné.
Lorsque vous saisissez un nombre n
avant la commande, s
et c
supprimez n
éléments (caractères pour s
ou mouvements pour c
), puis insère du texte une fois. Toutefois, l'utilisation d'un nombre n
avant r
remplace les caractères n
suivants par autant de copies du caractère choisi. Par exemple, 4r0
pourrait remplacer 1234
avec 0000
tout à la fois.