如何用逗号空格(pep8)替换所有逗号?

时间:2013-02-27 17:29:30

标签: python unix vim

我写了一些Python代码,遗憾的是在逗号之后忘记了几个空格(试图跟随Pep8)。如何用逗号后跟空格替换逗号。这里的诀窍是一些逗号已经有空格,所以如果我做一个简单的搜索和替换,一些逗号后面跟着双空格。如果我用单个空格替换双空格,那么我的标签(扩展到空格)将变得混乱。

我正在寻找合适的vim命令,如果可能的话,还要寻找合适的unix命令。我试图这样做跟随pep8。是否有任何可以自动纠正风格错误跟随pep8?我找到了识别错误的模块,但没有解决它们。

4 个答案:

答案 0 :(得分:5)

Python解决方案

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

答案 1 :(得分:2)

vim替换:

:%s/,\([^ ]\)/, \1/g

^字符类中的前导[],不是这样说的。所以它[^ ]匹配任何不是空格的东西。

编辑,正在删除空格后的东西。 \(\)会保存内容,\1会返回该内容。

答案 2 :(得分:2)

就自动修正错误而言,autopep8对此很有用 - 它附带了一个二进制文件,你可以使用它来纠正错误,虽然我担心我不知道你怎么打结它进入了vim。

答案 3 :(得分:2)

在vim中进行一次性替换:

:%s/\v,(\S)/, \1/g

但是请使用vim插件。