Meine Codierungsgewohnheiten waren in der Vergangenheit nicht sehr gut, daher wurden im Code viele Tabulatoren verwendet.
Jetzt möchte ich Tabulatoren in Leerzeichen umwandeln. Es ist nicht praktikabel, den Befehl vimrc
然后执行:ret
命令就可以了,问题是需要被处理的文件有很多,手动为每个文件执行:ret
festzulegen. Aus welchem Blickwinkel kann ich dieses Problem lösen?
例如你要处理的都是python文件,那么cd到项目根目录:
1. $> vim `find . -type f -name "*.py"` // 用VIM打开所有要处理的文件
2. :argdo :ret | update // 对vim参数列表中的所有文件都执行:ret命令并且保存
另外可以再了解下bufdo, windo命令的用法。
以上只是针对楼主的问题展示VIM是可以很轻松做到这个的,不用一个一个去弄。当然按照楼上的思路写脚本也是很好的方法。
试试 sed 吧:
sed -i -e "s/\t/ /g" *.py
建议别用 vim,写个脚本处理。
可以用 shell 写,find + sed 命令就可以搞定了,也可以用 python 写,os.path.walk 遍历文件,逐行扫描,没多少代码的。
这种问题可以使用正则表达式来处理呀,不过最好不要vim一个个搞过去,写个python脚本来跑正则表达式应该更好一些
expand
shell 命令是干这个的。批处理用正则是比较爽的,不过一定要vim的话,@shizhz的答案不错。
sed -i "s/\t/ /g" *.py
使用vi(m)的非交互方式。
^I
使用CTRL+V+I
输入。EOF后面不能用空格。
vi(m)命令前不能有空格。
:h retab