Remplacer le texte en mode bloc visuel


10

Peut-être que je cherche dans le mauvais sens, mais je n'ai pas trouvé comment faire cela.

Voici le scénario: j'ai une liste dans un fichier texte où je veux insérer le même mot sur plusieurs lignes, voici un exemple de texte:

12.1 Point1
12.2 Élément2
12.3 Point3

Maintenant, je bloque visuellement la 8e colonne, indiquée par des traits de soulignement ci-dessous, et j'ai l'intention de remplacer une partie de l'espace avec Donesans déplacer la colonne de l'élément:

12.1 _ Item1
12.2 _ Item2
12,3 _ Item3

Je m'attendais à pouvoir passer en mode remplacement, mais je ne peux entrer que insert ( I), append ( A) ou change-mode ( c). Le changement de mode se rapproche de ce que je veux: si je connais la longueur du mot, le bloc peut être réglé à la même largeur.

Y a-t-il quelque chose qui me manque ici?

Réponses:


18

Pourquoi ne sélectionnez-vous pas 4 colonnes et cliquez sur c?

<C-v>
2j
3l
cDone
<Esc>

Vous pouvez également utiliser :h normal:

V
2j
:'<,'>norm 7lRDone
<Esc>

1
Cela fonctionne Done, mais si je veux écrire autre chose, je veux être libre de compter les caractères, si possible.
Thor

1
:normest ton ami, alors.
romainl

Oui, la deuxième solution peut être utilisée pour une cartographie pratique. Je vous remercie.
Thor

1

Si vous souhaitez remplacer au sein d'un bloc visuel, vous pouvez utiliser le vis.vimplugin .

http://vim.wikia.com/wiki/Applying_substitutes_to_a_visual_block

À installer:

Téléchargez vis.vba.gz depuis http://www.drchip.org/astronaut/vim/index.html#VIS

# Open vis.vba.gz in Vim 7.1 or later.
vim vis.vba.gz

# Source the open file.
:so %

# Quit Vim
:q

Une fois installé:

ctrl-v to enter visual-block mode
Move to select the block you want
:B s/pattern/newtext/

Encore mieux, vous pouvez exécuter n'importe quelle commande Ex sur le bloc visuel, pas seulement des substitutions. Par exemple :B !sort.


Joli plugin, je vais l'utiliser :-). Mais comment puis-je l'utiliser pour remplacer des colonnes arbitraires?
Thor

À droite, vous avez toujours le problème de définir rapidement la largeur du bloc visuel pour correspondre à vos colonnes de largeur arbitraire. Je fais généralement <count> wou epour sélectionner rapidement plusieurs colonnes, puis je règle avec hou l.
Christian Long
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.