Я пытаюсь включить перенос строк в ноутбуке ipython. Я искал его без каких-либо результатов, и я набрал ipython notebook --help в терминале. Это дает мне тонну команд конфигурации для файла конфигурации, но нет переноса строки. Кто-нибудь знает, имеет ли ipnotebook эту функцию, и если да, то как ее включить? Ваша помощь будет принята с благодарностью. Спасибо.
Как включить перенос строк в ноутбуке ipython
Ответ 1
Как отметил @Matt, вам нужно настроить CodeMirror для включения обертывания.
Однако это может быть достигнуто простым добавлением следующей строки в ваш custom.js
:
IPython.Cell.options_default.cm_config.lineWrapping = true;
Таким образом, нет необходимости перебирать все ячейки.
Аналогичным образом вы можете включить номера строк, установить глубину углубления и т.д. (См. Ссылку, опубликованную by @Matt для других опций). Местоположение вашего custom.js
зависит от вашей ОС (на моей машине 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;
}
);
}
);
Ответ 2
Чтобы реализовать перенос строк в ноутбуках в ipython 3, я использовал ответ @Jakob, связанный выше, и фактический ответ @Jakob. Использование одной строки кода в моем случае не работало - однако добавление следующего к custom.js
делает:
$([IPython.events]).on('app_initialized.NotebookApp', function(){
IPython.CodeCell.options_default['cm_config']['lineWrapping'] = true;
});
Ответ 3
Большая часть ноутбука оснащена Codemirror, поэтому вы можете найти эту проблему: у нас нет простого способа передачи конфигурации в CodeMirror, так что вам нужно будет вычислить некоторый javascript un custom.js
, чтобы применить конфигурацию к нужному объекту.
С головы и рук: я бы сказал IPython.CodeCell.default_options.cm
les lineWrapping
true, а затем цикл через IPython.notebook.get_cells()
(уже созданный объект) захватил их атрибут editor
и setOption('lineWrapping',true)
.
Вы можете сделать расширение JS, которое это сделает, и предложить (и вдохнуть) здесь.