私のコーディング習慣は以前はあまり良くなかったので、コード内で多くのタブが使用されていました。 タブをスペースに変換したいのですが、vimrc然后执行:ret命令就可以了,问题是需要被处理的文件有很多,手动为每个文件执行:retコマンドを設定するのは現実的ではありません。どのような角度からこの問題を解決できますか?
vimrc
:ret
たとえば、処理したいのは Python ファイルだけである場合は、プロジェクトのルート ディレクトリに cd します: 1. $> vim `find . -type f -name "*.py"` // VIMで処理するすべてのファイルを開きます 2. :argdo :ret update // vim パラメータリスト内のすべてのファイルに対して :ret コマンドを実行し、保存します
さらに、bufdo および Windo コマンドの使用法について詳しく学ぶことができます。
上記は、元の投稿者の問題に応じて、VIM が 1 つずつ実行することなく簡単にこれを実行できることを示しているだけです。もちろん、上記の考え方に従ってスクリプトを書くのも良い方法です。
sed を試してください:sed -i -e "s/t/ /g" *.py
sed -i -e "s/t/ /g" *.py
vim を使用せず、それを処理するスクリプトを作成することをお勧めします。 これはシェルで記述することもでき、find + sed コマンドで実行できます。Python で記述することもでき、os.path.walk はファイルを 1 行ずつ走査します。コードはそれほど多くありません。
リーリー
この種の問題は正規表現を使用して解決できますが、vim を使用して 1 つずつ処理するのではなく、正規表現を実行する Python スクリプトを作成することをお勧めします。
expand シェルコマンドがこれを行います。
expand
バッチ処理には正規表現を使用する方が快適ですが、vim を使用する必要がある場合は、@shizhz の答えが適しています。
sed -i "s/t/ /g" *.py
vi(m) の非対話モードを使用します。 ^I使用CTRL+V+I入ります。 EOF の後にスペースは使用できません。 vi(m) コマンドの前にスペースを入れることはできません。
^I
CTRL+V+I
:h retab
たとえば、処理したいのは Python ファイルだけである場合は、プロジェクトのルート ディレクトリに cd します:
1. $> vim `find . -type f -name "*.py"` // VIMで処理するすべてのファイルを開きます
2. :argdo :ret update // vim パラメータリスト内のすべてのファイルに対して :ret コマンドを実行し、保存します
さらに、bufdo および Windo コマンドの使用法について詳しく学ぶことができます。
上記は、元の投稿者の問題に応じて、VIM が 1 つずつ実行することなく簡単にこれを実行できることを示しているだけです。もちろん、上記の考え方に従ってスクリプトを書くのも良い方法です。
sed を試してください:
sed -i -e "s/t/ /g" *.py
vim を使用せず、それを処理するスクリプトを作成することをお勧めします。
これはシェルで記述することもでき、find + sed コマンドで実行できます。Python で記述することもでき、os.path.walk はファイルを 1 行ずつ走査します。コードはそれほど多くありません。
リーリー
この種の問題は正規表現を使用して解決できますが、vim を使用して 1 つずつ処理するのではなく、正規表現を実行する Python スクリプトを作成することをお勧めします。
expand
シェルコマンドがこれを行います。バッチ処理には正規表現を使用する方が快適ですが、vim を使用する必要がある場合は、@shizhz の答えが適しています。
sed -i "s/t/ /g" *.py
リーリー
vi(m) の非対話モードを使用します。
^I
使用CTRL+V+I
入ります。EOF の後にスペースは使用できません。
vi(m) コマンドの前にスペースを入れることはできません。
:h retab