2016-02-11 7 views
9

Czy jest to problem z podświetlaniem składni w moim notesie iPython? Czy mogę go usunąć? Zdarza się to w niektórych komórkach, ale nie w innych.Dlaczego niektóre zmienne i komentarze w moim notesie IPython są czerwone?

ipython red text

jestem oglądania this iPython notebook.

+0

pewnością wygląda jak podświetlanie składni problemu. Parser javascript może być pomieszany. To jedyny powód, dla którego mogę myśleć. Nie jestem pewien, czego szukasz, jeśli chodzi o odpowiedź ... –

+0

Nie jestem zaznajomiony z tym, jak notebooki iPython obsługują podświetlanie składni - w jaki sposób jest zaangażowany parser js? Nic nie widzę w mojej juypterowej konfiguracji związanej z podświetlaniem składni. Odpowiedzi mogą wskazywać, dlaczego tak się dzieje lub jak futz z zakreślaczem składni. – Matt

+0

Notebooki iPython (teraz Jupyter) działają z serwerem Tornado (framework Python). HTML i CSS robią wyświetlanie, ale dynamiczne podświetlanie składni jest obsługiwane przez JavaScript. –

Odpowiedz

16

Dzieje się tak dlatego, że wcięcie jest skręcane. Dla spójności analizator codemirror tworzy czerwoną linię, jeśli nie ma wcięcia 4 spacji (lub jeśli ma wcięcia z zakładkami, w zależności od wersji codemirror). Analizator składni ma pewną liczbę krawędzi, która rzeczywiście podkreśla tylko kilka linii na czerwono, nie będę wchodził w szczegóły, ale jeśli wciskam 4 spacje, to zadziała.

Można:

  • wybrać blok kodu i nacisnąć tab
  • użycie alt - click'n'drag pionowo, aby umieścić wiele kursorów przed kodzie, a następnie naciśnij przycisk przestrzeń wystarczającą ilość czasu, aby wcięcie prawidłowego 4 miejsca.

Ustawienie wcięcia na 2 jest możliwe, ale złożone i niezalecane. 4 spacje to norma Pythona.

+0

Rozbudowuję notebooki korzystające z konwencji 2-miejscowej, więc zmieniłem wcięcie za pomocą [tej odpowiedzi] (http://stackoverflow.com/a/24615436/232638). – Matt

+0

To źle. Konieczne jest przekonwertowanie notebooka na 4 zakładki. Pliki notesów są tak łatwe do przetworzenia. – Matt

0

To jest oficjalna rozwiązanie z Jupyter Notebook documentation:

  1. Otwórz Notebook Jupyter
  2. wybrać komórkę Code
  3. Otwórz konsolę JavaScript w przeglądarce i uruchom następujący fragment:

    var cell = Jupyter.notebook.get_selected_cell(); 
    var config = cell.config; 
    var patch = { 
         CodeCell:{ 
         cm_config:{indentUnit:2} 
         } 
        } 
    config.update(patch) 
    
  4. Ponownie załaduj stronę notesu

Ta poprawka jest trwała.

Aby odwrócić zmiany powtórzyć proces uruchomiony tym fragmencie:

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