web-dev-qa-db-fra.com

Comment faire l'édition de colonnes dans vim?

Vim est assez puissant lors de l'édition par ligne - les outils de recherche/remplacement sont modélisés pour fonctionner en ligne.

Mais que se passe-t-il si je souhaite modifier une colonne particulière sur toutes les lignes? Par exemple, comment puis-je changer la 80e colonne de mon fichier en # facilement?

51
Lazer

Vous pouvez utiliser un substitution où le le modèle correspond à une colonne spécifique (\%c):

:%s/\%80c/#/<CR>

Ou vous pouvez utiliser le mode visuel par bloc :

gg8|CTRL+vGr#

L'option ' virtualedit ' peut être utilisée pour permettre de positionner le curseur sur des positions où il n'y a pas de caractère réel:

:set virtualedit
38
Johnsyweb

Pour modifier une colonne, procédez comme suit:

  1. Tenez-vous au début de la colonne
  2. Presse Ctrl+Shift+v, puis marquez la colonne que vous souhaitez modifier.
  3. Presse Shift+i pour insérer du texte au début de la colonne, Shift+a pour ajouter du texte, r pour remplacer le texte en surbrillance, d pour supprimer, c pour changer ... etc.
  4. Frappé ESC lorsque vous avez terminé.

Je pense que les gens (moi) mappent parfois les clés de modification des colonnes à Ctrl+Q afin qu'il n'entre pas en collision avec la ligne de sélection visuelle (V) ou le texte collé si vous l'avez mappé comme tel.

113
sa125

... Je ne pouvais pas suivre les étapes de sa125 (facepalm), j'ai donc cherché ailleurs et trouvé plus facile dans: https://blog.pivotal.io/labs/labs/column-edit-mode -en-vi

  1. Ctrl+v [et sélectionnez ce que vous voulez]
  2. Shift+i [et écrivez n'importe quoi ... (consultez * ci-dessous)]
  3. Esc

* !! Attention Ne soyez pas découragé par le fait que seule la première ligne est modifiée lorsque "écrivez quoi que ce soit ..." !!

J'espère que ça aide!

33

Je suis peut-être totalement hors sujet ici, mais si votre idée est d'éviter les longues lignes, vous pouvez jeter un œil à l'option colorcolumn de vim 7.3.

1
Plouff

Pour l'édition par colonne, vis.vim est vraiment utile. Vous pouvez sélectionner par bloc votre colonne d'intérêt et la manipuler avec des commandes normales et même des commandes Ex arbitraires. Dans l'exemple de cette page, j'ai souvent utilisé le modèle:

:'<,'>B s/abc/ABC/g

Vous pouvez installer Vundle/Pathogen vis.vim à partir de github :

Plugin 'taku-o/vim-vis'

1
Micah Elliott