Bloc visuel insérer une nouvelle ligne

10

Je travaille beaucoup avec le mode bloc visuel, que je trouve vraiment utile pour des changements rapides sur de nombreuses lignes.

Mais quelque chose que j'ai du mal à faire est d'insérer une nouvelle ligne comme ceci:

La sélection est notée comme []:

Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext

J'appuie sur Iet je peux ajouter du texte à insérer avant le t:

Some other text
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext

Lorsque j'appuie sur, <Esc>j'obtiens ce qui suit:

Some other text
Some other text
Some other text
Some other text
Some other text

Mais maintenant, si j'appuie sur <CR>au lieu du texte que je veux ajouter, la nouvelle ligne est insérée comme souhaité, mais pas pour les autres lignes. Le résultat est le suivant:

Some 
text
Some text
Some text
Some text
Some text

Savez-vous pourquoi cela ne fonctionne pas?

Remarque: puisque cela fonctionne pour cet rje ne sais pas pourquoi cela ne fonctionne pas ...

nobe4
la source
Si l'intention est de créer une nouvelle ligne après un certain caractère pour les lignes sélectionnées, nous pouvons essayer une macro. Allez à la nième colonne et entrez une nouvelle ligne et répétez-la jusqu'à la sélection
SibiCoder
Oui, ou une substitution pourrait également fonctionner, mais mon intention est de trouver la façon de le faire en mode bloc visuel.
nobe4
4
Cela ne peut malheureusement pas être fait en mode bloc visuel. Utilisez plutôt une substitution ou un enregistrement.
romainl

Réponses:

4

Le bloc visuel Ine fonctionne pas comme ça. Le mieux que vous puissiez faire est probablement quelque chose comme ce qui suit.

Mettez en surbrillance une colonne en mode bloc visuel (en [b]indiquant un caractère en surbrillance comme dans votre question):

aaa[b]bb
aaa[b]bb
aaa[b]bb
aaa[b]bb
cccccc

Effectuez une substitution sur la zone visuelle avec \%V:

:'<,'>s/\%V/\r/

Vim insérera le '<,'>pour vous lorsque vous appuyez sur :, vous n'avez donc pas besoin de taper ce bit.

Et le résultat:

aaa
bbb
aaa
bbb
aaa
bbb
aaa
bbb
cccccc

Si vous devez souvent diviser des lignes dans un bloc visuel, il est probable qu'il sera facilement disponible dans votre historique, et vous n'aurez peut-être pas besoin de faire plus que de surligner, alors :<up><return>.

Antony
la source
Bon usage du \%Vmême si ce n'est pas ce que je voulais j'accepterai (mais ce que je veux semble quand même impossible ^^)
nobe4