行頭はタブで統一して再発しないようにする
PyDevエディタからコピペするとMixed Indentation: Spaces foundという警告がでてきました。
PyDevエディタでのタブとスペースの設定を確認します。
Window→Preferences。
PyDev→Editor→Tabs。
デフォルトの設定はこのようになっています。
Replace tabs with spaces when typing?
入力時にタブをスペースで置換するか?
Assume tab spacing when files contain tabs?
タブが含まれているファイルではタブを使うと判断するか?
どちらもチェックされているので、キーで入力したときはスペース、そうでないときはタブというふうにちぐはぐになってしまうようです。
ということでReplace tabs with spaces when typing?のチェックははずして、行頭はタブで統一することにしました。
(2017.8.22追記。このチェックを付けたままにしているとMerge Toolでコードをコピーしたときはスペースになるようです。なので、マージしたときにタブとスペースの違いでコンフリクトしたとき、Git(29)EclipseのMerge Toolでコンフリクトを修正するの方法でMerge Toolで修正してコンフリクトがなくなったはずなのに、マージするとまたコンフリクトがでてくるという問題で悩まされました。このチェックを外すと問題は解決しました。マシンを変えたときは忘れずにこの項目を確認しておかなくてはいけません。)
Pythonは本来そうあるべきですし。
これで再発は予防できますが、すでにでている警告は消えません。
(2017.11.4追記。このブログのあるBlogger.comでは1個のタブは1個の半角スペースに変換されて保存されてしまいます。なので、このブログにPyDevからコードをコピペして保存するとタブインデントがおかしくなってしまいます。そこでSyntaxHighlighterで表示するときに行頭のスペースを4個のスペースに変換するようにしました。Blogger:SyntaxHighlighterにコピペしたタブインデントをスペースインデントに置換する)
警告Mixed Indentation: Spaces foundを消す方法
Edit→Select All。
Source→Convert space-tabs to tabs。
スペース何個分をタブで置換するのか聞かれます。
これでOKすると4個のスペースが1個のタブに置換されて警告が消えました。
0 件のコメント:
コメントを投稿