IPython Notebookで関数を開発すると、すばやく作業できることがわかりました。結果に満足したら、ファイルにコピーして貼り付けます。自動インデントは4スペースですが、私の会社のインデントのコーディングスタイルは2スペースです。自動インデントを2つのスペースに変更するにはどうすればよいですか?
this の質問と見つかったオプションに基づいて here :
custom.jsファイル(場所はOSによって異なります)に
IPython.Cell.options_default.cm_config.indentUnit = 2;
私のマシンでは、ファイルは~/.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.indentUnit = 2;
}
);
}
);
公式ドキュメントには この特定の質問に答える例 があります。これはIPython 4で私のために働いた。
概要:以下をブラウザのJavaScriptコンソールに貼り付けます
var cell = Jupyter.notebook.get_selected_cell();
var config = cell.config;
var patch = {
CodeCell:{
cm_config:{indentUnit:2}
}
}
config.update(patch)
設定は保持されます。 ロールバック: 2
ために : null
。
CodeMirrorコードセルの公式ドキュメントから:
b
を押すスニペット:
var cell = Jupyter.notebook.get_selected_cell();
var config = cell.config;
var patch = {
CodeCell:{
cm_config:{indentUnit:2}
}
}
config.update(patch)
F5
これで完全に修正されます。これは最近のバージョンでのみ機能すると思いますが、確かではありません!
AdamALの答えは正しいです。それは私のために働いた。
ただし、Jupyter Notebookのインデントのみが変更され、Jupyter Editorのインデントは影響を受けません。
インデントを変更するより直接的な方法は、.jupyter/nbconfig
ディレクトリにあるJupyter構成ファイルを直接編集することです。このディレクトリには2つのファイルが含まれています。
edit.json
notebook.json
どちらかに設定する必要があるオプションはindentUnit
です。私のJupyter設定ファイルの内容は次のとおりです。
edit.json:
{
"Editor": {
"codemirror_options": {
"indentUnit": 2,
"vimMode": false,
"keyMap": "default"
}
}
}
notebook.json:
{
"CodeCell": {
"cm_config": {
"indentUnit": 2
}
}
}
このアプローチでは、Jupyter NotebookとJupyter Editorの両方でデフォルトのインデントを2に設定しました。
これは、ノートブックのロードごとに1回ロードするイベントハンドラーでラップするのが最適であると思います。
$([IPython.events]).on('app_initialized.NotebookApp', function(){
IPython.CodeCell.options_default['cm_config']['indentUnit'] = 2;
});
jupyterlabを使用する場合、より簡単な方法があるようです:
1)jupyterlabメニュー[設定]> [詳細設定エディター]をクリックします
2)左側のペインで「ノートブック」をクリックし、「Raw View」にいることを確認します
3)右側のペインの[User Overrides]で、次のように入力します。
{
"codeCellConfig": {
"tabSize": 2
}
}
システムデフォルトを見ると、何が上書き可能かについてのヒントが得られ、他の設定でもこれを繰り返すことができます。
Jupyterlabを使用するGoogle Platform AI Notebookでこれを試しました。
追加に加えて
_IPython.Cell.options_default.cm_config.indentUnit = 2;
_
jakobによって提案された_custom.js
_ファイルに、ipythonノートブックを再起動する前にブラウザーのキャッシュもクリアしてください!
また、_~/.config/ipython/profile_default/static/custom/
_ファイルを追加する前に、まず_custom.js
_ディレクトリを作成する必要があります(echo $(ipython locate default)
を使用してデフォルトディレクトリを検索)。