私はipythonのdevブランチで最新の状態を保ちます(ipythonはこれまでで最も素晴らしいものだからです)。かなり最近(昨日のすばらしいipython 2.0リリースの前)、括弧、括弧、引用符などを入力すると自動的に閉じ始めることに気付きました。これは、ターミナル[ターミナルで使用するものは何もありません]とノートブックセッションの両方で発生するため、開発者側の意図的な選択であると考えられます。私は他の人がこの機能を好むかもしれないことを尊重することができますが、私を駆り立てます完全にナッツです。
構成ファイルにオプションが見つかりません。私はそれをグーグルにすることさえできません。現れるのは、 自動括弧 の異なる機能だけです。私は実際に この質問 を見つけましたが、それは古く、私が見ている振る舞いは起こらないことを示唆しています。
この機能をオフにするにはどうすればよいですか?
[とにかくノート型インターフェイスをほとんど使用しているので、そこでオフにするだけで問題ありませんが、ノートパソコンと端末のipythonセッションの両方でオフにすることを望みます。]
@minrkの答えは修正の要点ですが、少なくとも_IPython-3.1.0
_を使用して、初期化コールバックでラップする必要があります。 _custom.js
_で:
_require(['base/js/namespace', 'base/js/events'], function(IPython, events) {
events.on('app_initialized.NotebookApp', function() {
IPython.CodeCell.options_default.cm_config.autoCloseBrackets = false;
});
});
_
IPythonのRequireJS
依存関係の読み込みに関するコメントと、 IPython/Jupyterの拡張機能のインストール でのより良い定式化へのポインタに@Mikeに感謝します。
_Jupyter 4.0.x
_:の編集
現在のIPythonノートブックの実装であるJupyter 4.0.0は、JSのカスタマイズを改良しました。現在はデフォルトで_~/.jupyter/custom/custom.js
_を使用するため、その全体のrequire(... events.on(...))
スニペットをグローバルスコープで次のものだけに置き換える必要があります。
_IPython.CodeCell.options_default.cm_config.autoCloseBrackets = false;
_
同様に、jQueryを使用して何かを操作する場合は、jQuery
グローバルを直接使用します。たとえば、デフォルトで固定ヘッダーを非表示にしたいので、コード用にさらに40pxのスペースができます。これは、Jupyterのロゴを常に見るよりも少し価値があります。
_jQuery('#header-container').hide();
_
_Jupyter ≥ 4.0.6
_の編集(ただし<Jupyter Lab):
上記の_custom.js
_ソリューションが機能しない場合は、_~/.jupyter/nbconfig/notebook.json
_に次を追加してみてください。
_{
"CodeCell": {
"cm_config": {
"autoCloseBrackets": false
}
}
}
_
ノートブックの動作は、CodeMirror autoCloseBrackets プラグインの結果です。編集してこれをオフにすることができます(ipython profile create
まだ行っていない場合)~/.ipython/profile_default/static/custom/custom.js
および追加:
if (IPython.CodeCell) {
IPython.CodeCell.options_default.cm_config.autoCloseBrackets = false;
}
端末については、あなたが説明する括弧の動作は見当たりません。おそらくPYTHONSTARTUPが定義されていますか? IPythonはこのファイルをデフォルトで実行しますが、~/.ipython/profile_default/ipython_config.py
:
c.InteractiveShellApp.exec_PYTHONSTARTUP = False
これは、Jupyter 4.0.6で機能するものです。
require(['notebook/js/codecell'], function (codecell) {
codecell.CodeCell.options_default.cm_config.autoCloseBrackets = false;
})
~/.jupyter/custom/custom.js
。
ところで、追加の一致する括弧の構文ハイライトをオフにしたい場合:
codecell.CodeCell.options_default.cm_config.matchBrackets = false;
あなただけのPythonからそれをしたい場合:
from notebook.services.config import ConfigManager
c = ConfigManager()
c.update('notebook', {"CodeCell": {"cm_config": {"autoCloseBrackets": False}}})
Jupyter Notebook 5.0.0を使用したJupyter 4.3.0では、上記の提案は機能しませんでした
次の内容の~/.jupyter/custom/custom.js
というファイルを作成する必要があることがわかりました。
var cell = Jupyter.notebook.get_selected_cell();
var patch = {
CodeCell: {
cm_config: {
autoCloseBrackets: false,
}
}
}
cell.config.update(patch);
これを行う前に、~/.juypter/custom
ディレクトリが存在していなかったことに注意してください。
Jupyter Notebook 5.1では、4.2と同じものを使用します。つまり、次のスニペットを〜/ .jupyter/custom/custom.jsに入れます。
require(['notebook/js/codecell'], function (codecell) {
codecell.CodeCell.options_default.cm_config.autoCloseBrackets = false;
})
Jupyter Lab Notebookでは、設定メニューでautoClosingBrackets
プラグインをオフにできます。 Settings --> Advanced Settings Editor
に移動し、User Overrides
セクションに次を追加します。
{
"codeCellConfig": {
"autoClosingBrackets": false
}
}
スクリーンショット
これはJupyterLab 0.32.1およびjupyter_core 4.4.0で機能しました
他の回答では言及されていませんでした。私の場合(OS X、Jupyter 4.2.0)、custom.jsは〜/ anaconda/lib/python3.5/site-packages/notebook/static/custom/custom.jsにあります
私のような人に役立つと思う。