Tabiat pengekodan saya tidak begitu baik pada masa lalu, jadi banyak tab digunakan dalam kod.
Sekarang saya ingin menukar tab menjadi ruang Tidak praktikal untuk menetapkan arahan vimrc
然后执行:ret
命令就可以了,问题是需要被处理的文件有很多,手动为每个文件执行:ret
Dari sudut mana saya boleh menyelesaikan masalah ini?
Sebagai contoh, semua yang anda mahu proses adalah fail python, kemudian cd ke direktori akar projek:
1. $> vim `find . -type f -name "*.py"` // Buka semua fail untuk diproses dengan VIM
2. :argdo :ret |. Kemas kini // Jalankan arahan :ret pada semua fail dalam senarai parameter vim dan simpan
Selain itu, anda boleh mengetahui lebih lanjut tentang penggunaan arahan bufdo dan windo.
Di atas hanyalah untuk menunjukkan bahawa VIM boleh melakukan ini dengan mudah sebagai tindak balas kepada masalah poster asal, tanpa perlu melakukannya satu persatu. Sudah tentu, menulis skrip mengikut idea di atas juga merupakan kaedah yang baik.
Cuba sed:
sed -i -e "s/t/ /g" *.py
Adalah disyorkan untuk tidak menggunakan vim dan menulis skrip untuk mengendalikannya.
Ia boleh ditulis dalam shell, dan arahan find + sed akan melakukannya. Ia juga boleh ditulis dalam python, dan os.path.walk melintasi fail dan mengimbas baris demi baris.
Masalah seperti ini boleh diselesaikan menggunakan ungkapan biasa, tetapi sebaiknya jangan gunakan vim untuk menanganinya satu persatu. Adalah lebih baik untuk menulis skrip python untuk menjalankan ungkapan biasa
expand
Perintah shell melakukan ini.Lebih selesa menggunakan ungkapan biasa untuk pemprosesan kelompok, tetapi jika anda mesti menggunakan vim, jawapan @shizhz adalah bagus.
sed -i "s/t/ /g" *.py
Gunakan mod bukan interaktif vi(m).
^I
使用CTRL+V+I
Masuk.Tiada ruang boleh digunakan selepas EOF.
Tidak boleh ada ruang sebelum arahan vi(m).
:h retab