我发现在 IPython notebook 中开发函数可以让我快速工作。当我对结果感到满意时,我会复制粘贴到文件中。自动缩进是 4 个空格,但我公司的缩进编码样式是 2 个空格。如何将自动缩进更改为 2 个空格?
7 回答
官方文档有一个回答这个特定问题的例子。这适用于 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 代码单元的官方文档:
- 打开一个 Ipython 笔记本
- 创建一个代码单元格,例如按
b
- 打开浏览器的 JavaScript 控制台并运行以下命令
片段:
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 编辑器中的缩进。
更改缩进更直接的方法是直接编辑.jupyter/nbconfig
目录中的 Jupyter 配置文件。该目录包含 2 个文件:
edit.json
notebook.json
您必须在任一选项中设置的选项是indentUnit
。这是我的 Jupyter 配置文件的内容:
编辑.json:
{
"Editor": {
"codemirror_options": {
"indentUnit": 2,
"vimMode": false,
"keyMap": "default"
}
}
}
笔记本.json:
{
"CodeCell": {
"cm_config": {
"indentUnit": 2
}
}
}
通过这种方法,我在 Jupyter Notebook 和 Jupyter Editor 中都将默认缩进设置为 2。
基于此问题和此处找到的选项:
在您的 custom.js 文件中(位置取决于您的操作系统)放
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;
}
);
}
);
如果您使用jupyterlab,似乎有一种更简单的方法:
1)点击jupyterlab菜单设置>高级设置编辑器
2)单击左侧窗格中的“笔记本”,确保您处于“原始视图”
3) 在右窗格的“用户覆盖”下,输入:
{
"codeCellConfig": {
"tabSize": 2
}
}
如果您查看系统默认值,它将提示您什么是可覆盖的,您可以对其他设置重复此操作。
我在使用 Jupyterlab 的 Google Platform AI Notebook 上试过这个。
我相信现在最好将其包装在事件处理程序中,以便在每次笔记本加载时加载一次:
$([IPython.events]).on('app_initialized.NotebookApp', function(){
IPython.CodeCell.options_default['cm_config']['indentUnit'] = 2;
});
除了添加
IPython.Cell.options_default.cm_config.indentUnit = 2;
按照 Jakob 的建议添加到您的custom.js
文件中,请务必在重新启动 ipython 笔记本之前清除浏览器缓存!
此外,在添加文件之前,您可能必须先创建~/.config/ipython/profile_default/static/custom/
目录(用于echo $(ipython locate default)
查找默认目录)custom.js
。