Comment bloquer le remplacement du code en mode visuel?


26

J'ai une liste d'articles où je veux remplacer les deux premiers caractères:

a) item 1
b) item 2
c) item 3

Quelle est la façon la plus rapide de procéder:

* item 1
* item 2
* item 3

J'ai une approche en mode visuel (Ctr-v, jjj, mais j'ai besoin de faire deux commandes de remplacement. Iirc, ce remplacement peut se faire avec 1 commande)


1
Comme .,.+2s/^../*/(ou de manière équivalente dans une sélection visuelle)? Pourquoi deux commandes de remplacement? 2cremplacerait deux caractères.
muru

parfois seule la première ligne de la sélection visuelle est modifiée, en répétant ensuite avec. car les autres lignes gâchent les choses.
poseid

2
@poseid avez-vous l'habitude d'appuyer sur Ctrl-Cau lieu de Esc? Cela empêche, entre autres, d'appliquer des modifications à chaque ligne d'une sélection de bloc visuel.
tommcdo

cela pourrait être le principal motif de confusion! Merci!
poseid

Réponses:


26

Sélection du bloc visuel:

<C-v>
jjl
c*
<Esc>

:normal:

:,+2norm! cE*

Substitution:

:,+2s/^.\{2}/*

Formule à points:

cE*<Esc>
j.
j.

1
Approche folle: en utilisant textobj-word-column.vim, vous pouvez faire ciC*<esc>et être fait. Remarque: ce plugin est un plugin "fais ce que je veux dire" donc il échoue dans des endroits et des façons inattendus, mais le plugin est toujours utile dans certains cas faciles comme celui-ci.
Peter Rincker

intéressant la formule normale et point!
poseid

3
Notez que pour la solution Visual-block, vous ne verrez que du texte tapé sur la première ligne. Une fois que vous frappez <Esc>, il remplira les lignes restantes.
tommcdo

Des suggestions pour vous rappeler que c va remplacer? Comme comment ctrl + D (propre)
Jordan Mackie

2
@JordanMackie cest pour le "changement".
romainl

17

Voici une façon plus efficace de procéder:

  1. Ayant le curseur sur le premier élément et la 1ère lettre ( 0), entrez en mode visuel 'bloc Ctrl+' vet sélectionnez la 1ère colonne de votre paragraphe actuel par }(si votre liste est terminée par une nouvelle ligne), sinon utilisez différentes méthodes comme les touches fléchées (pour vous déplacer autour de la sélection), ou recherche de motifs /c)où se ctrouve votre dernier élément).
  2. Accédez au dernier symbole de votre liste par ket l(ou à l'aide des touches fléchées ), de sorte que deux colonnes soient sélectionnées que vous souhaitez modifier.
  3. Modifiez le texte sélectionné en appuyant sur cet tapez votre symbole de puce ( *) et terminez en appuyant sur Esc.

Fonctionne plus efficacement, en particulier dans les listes plus longues.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.