web-dev-qa-db-ja.com

IPythonノートブックの一部の変数とコメントが赤くなるのはなぜですか?

これは私のiPythonノートブックの構文強調表示の問題ですか?削除できますか?これは私の細胞のいくつかで起こりますが、他では起こりません。

ipython red text

表示しています このiPythonノートブック

19
Matt

これは、インデントがねじ込まれているためです。一貫性を保つため、4つのスペースがインデントされていない場合(またはコードミラーのバージョンによってはタブでインデントされている場合)、コードミラーパーサーは赤い線を表示します。パーサーにはいくつかのEdgeケースがあり、実際にはこれらの行のいくつかだけを赤で強調表示します。詳細には触れませんが、4つのスペースをインデントすれば機能します。

次のいずれかを行うことができます。

  • コードのブロックを選択してtabを押します
  • alt-click'n'dragを垂直方向に使用して、コードの前に複数のカーソルを置き、スペースを押して、正しいインデント4スペースを作成します。

インデントを2に設定することは可能ですが、複雑で推奨されません。 4スペースはpythonノルムです。

33
Matt

これは Jupyter Notebook documentation の公式ソリューションです:

  1. Jupyter Notebookを開く
  2. コードセルを選択します
  3. ブラウザのJavaScriptコンソールを開き、次のスニペットを実行します。

    var cell = Jupyter.notebook.get_selected_cell();
    var config = cell.config;
    var patch = {
          CodeCell:{
            cm_config:{indentUnit:2}
          }
        }
    config.update(patch)
    
  4. ノートブックページを再読み込みする

この修正は永続的です。

変更を元に戻すには、次のスニペットを実行するプロセスを繰り返します。

var cell = Jupyter.notebook.get_selected_cell();
var config = cell.config;
var patch = {
      CodeCell:{
        cm_config:{indentUnit: null} # only change here.
      }
    }
config.update(patch)
1
user4189424