recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment traiter par lots des fichiers dans Vim et changer les onglets en espaces ?

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 ?

过去多啦不再A梦过去多啦不再A梦2743 Il y a quelques jours728

répondre à tous(10)je répondrai

  • 大家讲道理

    大家讲道理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.

    répondre
    0
  • 習慣沉默

    習慣沉默2017-05-16 16:43:14

    Essayez sed :sed -i -e "s/t/ /g" *.py

    répondre
    0
  • PHP中文网

    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.

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 16:43:14

    :%s/\t/    /g
    

    répondre
    0
  • 大家讲道理

    大家讲道理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

    .

    répondre
    0
  • 黄舟

    黄舟2017-05-16 16:43:14

    expand La commande shell fait cela.

    répondre
    0
  • 某草草

    某草草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.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-05-16 16:43:14

    sed -i "s/t/ /g" *.py

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱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+IEntrez.
    Aucun espace ne peut être utilisé après EOF.
    Il ne peut pas y avoir d'espace avant la commande vi(m).

    répondre
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 16:43:14

    :h retab

    répondre
    0
  • Annulerrépondre