RÉSUMÉ RAPIDE DE LA RÉPONSE: Je vais simplement mettre la réponse ici sous une forme simple. Il y a tellement de commentaires que ce fil se noie. 1) Vérifiez si vous avez activé + visualextra dans votre version de Vim, en tapant: ver dans Vim. 2) Vous insérez en marquant d'abord les éléments que vous souhaitez modifier, puis appuyez sur I (i majuscule) - je ne fonctionnerai pas en minuscules. 3) Une fois que vous avez fait cela, vous aurez peut-être l'impression que vous n'insérez que sur la première ligne, mais lorsque vous avez terminé, appuyez sur ESC et j, puis le texte est copié sur les autres lignes. C'est comme ça que ça se passe pour moi.
Zeth
Réponses:
203
Essaye ça
Après avoir sélectionné un bloc de texte, appuyez sur Shift+ iou majuscule I.
Les minuscules ine fonctionneront pas.
Puis tapez les choses que vous voulez et enfin pour l'appliquer à toutes les lignes, appuyez Escdeux fois.
Si cela ne fonctionne pas ...
Vérifiez si vous avez +visualextraactivé dans votre version de Vim.
Vous pouvez le faire en tapant :veret en faisant défiler la liste des fonctionnalités. (Vous voudrez peut-être le copier et le coller dans un tampon et effectuer une recherche incrémentielle car le format est étrange.)
L'activer sort du cadre de cette question, mais je suis sûr que vous pouvez le trouver quelque part.
Vous devez également appuyer sur échapper pour quitter le mode insertion avant que le texte ne soit dupliqué.
Brandon Joyce
19
Quelqu'un at-il déjà vu cela ne pas fonctionner? J'ai une configuration vim non modifiée sur CentOS. J'appuie sur ctrl + v, j'appuie sur ja plusieurs fois et je vois le curseur mettre en évidence le premier caractère de quelques lignes. J'appuie sur Maj + i. Le curseur est déplacé sur le premier caractère de la première ligne, mais je suis de retour en mode normal. Je le sais parce que si j'appuie sur "a", cela déplace le caractère vers la droite, et il dit "- INSERT -". Si je tape quelques caractères et appuie sur échapper, cela ne s'applique pas aux autres lignes.
Tyler Collier
2
@TylerCollier Je rencontre le problème sur Ubuntu 14.04 sur digitalocean. Veuillez commenter si vous avez trouvé une solution.
Zack Burt
2
@ZacharyBurt Le vim par défaut installé avec Ubuntu 14.04 (installé en tant que vi) n'inclut pas la visualextrafonctionnalité, donc l'insertion de bloc ne fonctionnera pas là-bas. sudo apt-get install vimapporte une version plus complète, sur laquelle visualextraest activé. @TylerCollier Cela peut également être le même problème sur votre installation CentOS: vérifiez la sortie de vim --versionpour voir la liste complète des fonctionnalités activées.
Gabriel Grant
41
appuyez sur ctrl et v // démarrer sélectionner
appuyez sur Maj et i // puis tapez n'importe quel texte
Après avoir appuyé sur ctrl + v, vous pouvez appuyer sur jpour sélectionner rapidement la (les) ligne (s) sous la position actuelle, ou appuyer sur kpour sélectionner rapidement la (les) ligne (s) au-dessus de la position actuelle. Vous pouvez également utiliser la shifttouche avec les erreurs upou downpour effectuer la sélection.
tyler.frankenstein
1
De toutes les réponses, c'est la seule qui a fonctionné pour moi. Je suis sur un mac en utilisant l'installation de brassage
Daniel Kaplan
Je me plains depuis des années que je ne pouvais pas facilement i nsert (comme c hangement) dans le bloc sélectionnez. Donc c'est avec un capital i, je suis étonné. J'ai utilisé :normal iINPUT<CR>pour entrer au début des lignes. Merci beaucoup pour ça!
Tim Visée le
Je ne pense pas que vous deviez appuyer deux fois sur esc. Si vous appuyez sur quelque chose après esc, cela mettra automatiquement à jour le texte. Sinon, il le fera dans environ une demi-seconde.
Shahbaz
29
Vous pouvez également avoir un cas d'utilisation dans lequel vous souhaitez supprimer un bloc de texte et le remplacer.
Comme ça
Hello World
Hello World
Vous pouvez sélectionner un bloc visuel avant "W" et appuyez sur Shift+ i- Tapez "Cool" - Appuyez sur ESCpuis supprimez "World" par sélection de bloc visuel.
Alternativement, la façon la plus cool de le faire est de simplement sélectionner le bloc visuel "Monde" dans les deux lignes. Typec pour change. Vous êtes maintenant dans le insertmode. Insérez ce que vous voulez et appuyez sur ESC. Les deux sont reflétés avec moins de frappes.
Réponses:
Essaye ça
Après avoir sélectionné un bloc de texte, appuyez sur Shift+ iou majuscule I.
Les minuscules ine fonctionneront pas.
Puis tapez les choses que vous voulez et enfin pour l'appliquer à toutes les lignes, appuyez Escdeux fois.
Si cela ne fonctionne pas ...
Vérifiez si vous avez
+visualextra
activé dans votre version de Vim.Vous pouvez le faire en tapant
:ver
et en faisant défiler la liste des fonctionnalités. (Vous voudrez peut-être le copier et le coller dans un tampon et effectuer une recherche incrémentielle car le format est étrange.)L'activer sort du cadre de cette question, mais je suis sûr que vous pouvez le trouver quelque part.
la source
A
plus!vi
) n'inclut pas lavisualextra
fonctionnalité, donc l'insertion de bloc ne fonctionnera pas là-bas.sudo apt-get install vim
apporte une version plus complète, sur laquellevisualextra
est activé. @TylerCollier Cela peut également être le même problème sur votre installation CentOS: vérifiez la sortie devim --version
pour voir la liste complète des fonctionnalités activées.la source
ctrl + v
, vous pouvez appuyer surj
pour sélectionner rapidement la (les) ligne (s) sous la position actuelle, ou appuyer surk
pour sélectionner rapidement la (les) ligne (s) au-dessus de la position actuelle. Vous pouvez également utiliser lashift
touche avec les erreursup
oudown
pour effectuer la sélection.i
, je suis étonné. J'ai utilisé:normal iINPUT<CR>
pour entrer au début des lignes. Merci beaucoup pour ça!Vous pouvez également avoir un cas d'utilisation dans lequel vous souhaitez supprimer un bloc de texte et le remplacer.
Comme ça
Vous pouvez sélectionner un bloc visuel avant "W" et appuyez sur Shift+ i- Tapez "Cool" - Appuyez sur ESCpuis supprimez "World" par sélection de bloc visuel.
Alternativement, la façon la plus cool de le faire est de simplement sélectionner le bloc visuel "Monde" dans les deux lignes. Typec pour
change
. Vous êtes maintenant dans leinsert
mode. Insérez ce que vous voulez et appuyez sur ESC. Les deux sont reflétés avec moins de frappes.la source
ESC
puis toute la ligne marquée affichera le caractère que vous tapez.si vous souhaitez ajouter un nouveau texte avant ou après la colonne sélectionnée:
la source
jj
propager les modifications à toutes les lignes ci-dessous était le dernier morceau qui me manquait!jj
est un tueur!