J'ai du texte comme celui-ci dans un fichier:
sample text
some random text
even more random text
text with no indent
worst indention
J'ai besoin de supprimer l'espace vide avant chacune des lignes. Pour une ligne ce que je fais est
0dw
Je peux répéter la même commande en utilisant. mais en naviguant manuellement vers les lignes suivantes.
Mais existe-t-il un moyen d'appliquer «0dw» à ce bloc de lignes?
Je suppose qu'il existe un moyen d'utiliser des macros, mais je ne les ai jamais utilisées auparavant. Mais je suis disposé à les apprendre s'il n'y a pas d'autre choix.
text-processing
vim
saiy2k
la source
la source
Réponses:
En savoir plus ici sur http://vim.wikia.com/wiki/Remove_unwanted_spaces
Si vous souhaitez le faire pour une gamme particulière de lignes:
BTW, la meilleure façon de commencer à apprendre vim est d'exécuter la
vimtutor
commande, il vous apprendra à utiliser Vim dans l'éditeur Vim.la source
V
et en déplaçant le curseur pour développer la sélection de lignes. Appuyez ensuite sur:
pour entrer automatiquement'<,'>
, et à partir de là, vous pouvez utiliser l'expression rationnelle de Nikhil.:'a,'bs/^\s\+//
.Une autre façon de procéder consiste à utiliser les outils d'indentation de VIM (généralement liés à </ >). Vous devez d'abord trouver un moyen d'indiquer quelles lignes seront affectées. Vous pouvez utiliser le mode de sélection visuelle ou tout autre moyen pour spécifier une plage de lignes à affecter, puis utiliser un nombre arbitrairement élevé ou des niveaux d'indentation pour les supprimer.
9<
fait généralement très bien l'astuce pour supprimer au moins 9 niveaux d'indentation possibles (tabulations / espaces) de la ou des lignes actuelles.la source
J'ai l'approche pour le faire dans les étapes suivantes simples:
Explication de la troisième étape:
0
navigue jusqu'au début de la ligne.dw
supprime le mot (espaces vides).normal
applique la commande0dw
.'<,'>
répète la normale pour toutes les lignes sélectionnées en mode visuel.la source
ctrl+v
vous permet de faire quelque chose de similaire à ce que vous voulez mais pas exactement. Vous pouvez sélectionner un bloc visuel et appliquer une commande au lot.la source
:normal
est la chose importante ici, et je pense que c'est la meilleure réponse ici. Pourriez-vous l'afficher comme réponse?