Maison > Questions et réponses > le corps du texte
Mes habitudes de codage n'étaient pas très bonnes dans le passé, donc beaucoup d'onglets étaient utilisés dans le code.
Maintenant, je veux convertir les tabulations en espaces. Il n'est pas pratique de définir la commande vimrc
然后执行:ret
命令就可以了,问题是需要被处理的文件有很多,手动为每个文件执行:ret
Sous quel angle puis-je résoudre ce problème ?
大家讲道理2017-05-16 16:43:14
Par exemple, tout ce que vous souhaitez traiter, ce sont des fichiers python, puis les placer dans le répertoire racine du projet :
1. $> vim `find .type f -name "*.py"` // Ouvrez tous les fichiers à traiter avec VIM
2. :argdo :ret | update // Exécutez la commande :ret sur tous les fichiers de la liste des paramètres vim et enregistrez
De plus, vous pouvez en savoir plus sur l'utilisation des commandes bufdo et windo.
Ce qui précède vise simplement à montrer que VIM peut facilement faire cela en réponse au problème de l'affiche originale, sans avoir à le faire un par un. Bien entendu, écrire des scripts selon les idées ci-dessus est également une bonne méthode.
PHP中文网2017-05-16 16:43:14
Il est recommandé de ne pas utiliser vim et d'écrire un script pour le gérer.
Il peut être écrit en shell, et la commande find + sed le fera également en python, et os.path.walk parcourt le fichier et analyse ligne par ligne.
大家讲道理2017-05-16 16:43:14
Ce genre de problème peut être résolu à l'aide d'expressions régulières, mais il est préférable de ne pas utiliser vim pour les traiter un par un. Il serait préférable d'écrire un script python pour exécuter des expressions régulières
.某草草2017-05-16 16:43:14
Il est plus confortable d'utiliser des expressions régulières pour le traitement par lots, mais si vous devez utiliser vim, la réponse de @shizhz est bonne.
给我你的怀抱2017-05-16 16:43:14
ls *.py | while read file;do
vi $file<<EOF
:%s/^I/ /g
:wq
EOF
done
Utilisez le mode non interactif de vi(m). ^I
使用CTRL+V+I
Entrez.
Aucun espace ne peut être utilisé après EOF.
Il ne peut pas y avoir d'espace avant la commande vi(m).