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?
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
Pour modifier une colonne, procédez comme suit:
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.
... 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
* !! 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!
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.
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'