web-dev-qa-db-ja.com

ipythonノートブックで行の折り返しを有効にする方法

Ipythonノートブックで行の折り返しを有効にしようとしています。結果なしでグーグルで検索し、ターミナルでipython Notebook--helpと入力しました。これにより、構成ファイルの構成コマンドが大量に発生しますが、行の折り返しはありません。 ipnotebookにこの機能があるかどうか、ある場合はそれを有効にする方法を知っている人はいますか?どうぞよろしくお願いいたします。ありがとうございました。

17
dr3311

@Mattが指摘したように、ラッピングを有効にするようにCodeMirrorを構成する必要があります。

ただし、これはcustom.jsに次の行を追加するだけで実現できます。

 IPython.Cell.options_default.cm_config.lineWrapping = true;

したがって、すべてのセルをループする必要はありません。同様の方法で、 行番号 を有効にしたり、 インデントの深さ を設定したりできます(他のオプションについては、@ Mattによって投稿されたリンクを参照してください)。 custom.jsの場所はOSによって異なります(私のUbuntuマシンでは~/.ipython/profile_default/static/customです)。

更新:

IPython 3では、プレーンコールは機能しなくなったため、適切なイベントハンドラー内に設定を配置する必要があります。考えられる解決策は次のようになります。

define([
    'base/js/namespace',
    'base/js/events'
    ],
    function(IPython, events) {
        events.on("app_initialized.NotebookApp",
            function () {
                IPython.Cell.options_default.cm_config.lineWrapping = true;
            }
        );
    }
);
11
Jakob

Ipython 3でノートブックに行の折り返しを実装するために、 上記のリンクされた@Jakobの回答 と@Jakobの実際の回答を使用しました。私の場合、1行のコードを使用しても機能しませんでしたが、custom.jsに以下を追加すると機能します。

$([IPython.events]).on('app_initialized.NotebookApp', function(){
  IPython.CodeCell.options_default['cm_config']['lineWrapping'] = true;
});
4
AGS

ほとんどのノートブックはCodemirrorを利用しているため、検索するオプションは これ 問題は、CodeMirrorに構成を渡す簡単な方法がないため、javascript un _custom.js_は、構成を適切なオブジェクトに適用します。

頭のてっぺんから手を振る:_IPython.CodeCell.default_options.cm_ les lineWrappingをtrueに設定してから、IPython.notebook.get_cells()(既にインスタンス化されたオブジェクト)をループしてeditor属性を取得しますおよびsetOption('lineWrapping',true)

あなたはそれを行うJS拡張を作成し、提案する(そしてインスピレーションを得る)ことができます ここ

1
Matt