2

私はいくつかのPythonコードを書きましたが、残念ながらコンマの後にいくつかのスペースを忘れました(Pep8に従おうとしました)。カンマをコンマとそれに続くスペースに置き換えるにはどうすればよいですか。ここでの秘訣は、一部のコンマにはすでにスペースが含まれているため、単純な検索と置換を行うと、一部のコンマの後にダブルスペースが続くことになります。また、ダブルスペースをシングルスペースに置き換えると、タブ(スペースに拡張されます)が台無しになります。

適切なvimコマンドと、可能であれば適切なunixコマンドも探しています。私はpep8に従うためにこれを行おうとしています。pep8に従うために文体エラーを自動修正できるものはありますか?エラーを特定するモジュールを見つけましたが、修正していません。

4

4 に答える 4

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
于 2013-02-27T17:31:18.960 に答える
2

vimでの1回限りの交換の場合:

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

ただし、vimプラグインを使用してください。

于 2013-02-27T17:37:48.323 に答える
2

vimの置換:

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

キャラクタークラスのリーダー^は、これではないと言います。[]つまり[^ ]、スペース以外のものと一致します。

EDIT、スペースの後にあるものを削除していました。\(\)保存したものを保存し、それを返し\1ます。

于 2013-02-27T17:32:38.990 に答える
2

自動修正エラーに関する限り、autopep8はこれに最適です-エラーを修正するために使用できるバイナリが付属していますが、vimにどのように結び付けるかはわかりません。

于 2013-02-27T17:33:00.660 に答える