検索

ホームページ  >  に質問  >  本文

Vim でファイルをバッチ処理してタブをスペースに変更するにはどうすればよいですか?

私のコーディング習慣は以前はあまり良くなかったので、コード内で多くのタブが使用されていました。
タブをスペースに変換したいのですが、vimrc然后执行:ret命令就可以了,问题是需要被处理的文件有很多,手动为每个文件执行:retコマンドを設定するのは現実的ではありません。どのような角度からこの問題を解決できますか?

过去多啦不再A梦过去多啦不再A梦2743日前724

全員に返信(10)返信します

  • 大家讲道理

    大家讲道理2017-05-16 16:43:14

    たとえば、処理したいのは Python ファイルだけである場合は、プロジェクトのルート ディレクトリに cd します:
    1. $> vim `find . -type f -name "*.py"` // VIMで処理するすべてのファイルを開きます
    2. :argdo :ret update // vim パラメータリスト内のすべてのファイルに対して :ret コマンドを実行し、保存します

    さらに、bufdo および Windo コマンドの使用法について詳しく学ぶことができます。

    上記は、元の投稿者の問題に応じて、VIM が 1 つずつ実行することなく簡単にこれを実行できることを示しているだけです。もちろん、上記の考え方に従ってスクリプトを書くのも良い方法です。

    返事
    0
  • 習慣沉默

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

    sed を試してください:sed -i -e "s/t/ /g" *.py

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 16:43:14

    vim を使用せず、それを処理するスクリプトを作成することをお勧めします。
    これはシェルで記述することもでき、find + sed コマンドで実行できます。Python で記述することもでき、os.path.walk はファイルを 1 行ずつ走査します。コードはそれほど多くありません。

    返事
    0
  • 伊谢尔伦

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

    リーリー

    返事
    0
  • 大家讲道理

    大家讲道理2017-05-16 16:43:14

    この種の問題は正規表現を使用して解決できますが、vim を使用して 1 つずつ処理するのではなく、正規表現を実行する Python スクリプトを作成することをお勧めします。

    返事
    0
  • 黄舟

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

    expand シェルコマンドがこれを行います。

    返事
    0
  • 某草草

    某草草2017-05-16 16:43:14

    バッチ処理には正規表現を使用する方が快適ですが、vim を使用する必要がある場合は、@shizhz の答えが適しています。

    返事
    0
  • 天蓬老师

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

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

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 16:43:14

    リーリー

    vi(m) の非対話モードを使用します。
    ^I使用CTRL+V+I入ります。
    EOF の後にスペースは使用できません。
    vi(m) コマンドの前にスペースを入れることはできません。

    返事
    0
  • 我想大声告诉你

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

    :h retab

    返事
    0
  • キャンセル返事