我写了一些 Python 代码,不幸的是忘记了逗号后的几个空格(试图遵循 Pep8)。如何用逗号后跟空格替换逗号。这里的技巧是一些逗号已经有空格,所以如果我做一个简单的搜索和替换,一些逗号后面会跟双空格。如果我用单个空格替换双空格,那么我的制表符(扩展为空格)会搞砸。
我正在寻找合适的 vim 命令,如果可能的话,还有合适的 unix 命令。我正在尝试这样做以遵循 pep8。有什么东西可以自动更正风格错误以遵循 pep8 吗?我找到了识别错误但不修复它们的模块。
蟒蛇解决方案:
my_new_string = my_old_string.replace(',', ', ').replace(', ', ', ')
如果要在文件上运行它:
f = open('path/to/file')
my_file_contents = f.read()
f.close()
f = open('path/to/file', 'w')
f.write(file_contents.replace(',', ', ').replace(', ', ', '))
vim
解决方案:
:%s/,\ */,\ /g
vim 替换:
:%s/,\([^ ]\)/, \1/g
人物班的领头人,不是这样说的^
。[]
所以它 ,[^ ]
匹配任何不是空格的东西。
编辑,在空格后删除东西。\(\)
保存东西,然后返回\1
。
就自动更正错误而言,autopep8非常适合 - 它附带一个二进制文件,您可以使用它来纠正错误,尽管我担心我不知道您如何将它与 vim 联系起来。
对于 vim 中的一次性替换:
:%s/\v,(\S)/, \1/g
但是一定要使用 vim 插件。