나는 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 Installed Extensions 의 더 나은 공식에 대한 포인터에 대해 @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
답변
파이썬에서하고 싶다면 :
from notebook.services.config import ConfigManager
c = ConfigManager()
c.update('notebook', {"CodeCell": {"cm_config": {"autoCloseBrackets": False}}})
답변
이것은 Jupyter 4.0.6에서 나를 위해 작동하는 것입니다.
require(['notebook/js/codecell'], function (codecell) {
codecell.CodeCell.options_default.cm_config.autoCloseBrackets = false;
})
에서 ~/.jupyter/custom/custom.js
.
BTW, 일치하는 괄호의 구문 강조 표시를 추가로 끄려면 :
codecell.CodeCell.options_default.cm_config.matchBrackets = 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에서 작동했습니다.