在 jupyter notebook 中禁用 Ctrl+Enter sublime keymap
Disable Ctrl+Enter sublime keymap in jupyter notebook
我将 Jupyter Notebook 与 Sublime Text 键盘映射一起使用,方法是将以下内容添加到我的 Jupyter custom.js:
require(["codemirror/keymap/sublime", "notebook/js/cell"],
function(sublime_keymap, cell) {
cell.Cell.options_default.cm_config.keyMap = 'sublime';
});
...大部分情况下效果很好,除了我在 Windows 机器上,这将 "insertLineAfter" 的 Sublime 功能添加到 Ctrl+Enter 的绑定中,我不这样做不需要,因为 Ctrl+Enter 是在 Jupyter 中执行当前单元格的绑定。
有谁知道如何禁用 Ctrl+Enter 的 "insertLineAfter" 绑定吗?
可以使用 Default (OS).sublime-keymap
文件中的 unbound
命令禁用单个 Sublime Text 键绑定。即 Menu --> Preferences --> Key Bindings - User
。在您的情况下,只需添加以下行。
{ "keys": ["ctrl+enter"], "command": "unbound" },
由于 Add Line.sublime-macro
非常有用,您可能希望给它另一个绑定,例如,您可以使用 alt+enter
或 super+enter
,在这种情况下,您可以添加以下内容。
{ "keys": ["ctrl+enter"], "command": "unbound" },
{ "keys": ["alt+enter"], "command": "run_macro_file", "args":
{"file": "res://Packages/Default/Add Line.sublime-macro"} },
您可以通过注释掉以下行来防止 ctrl+enter 在 jupyter notebook 中产生新行:
cmds[map[ctrl + "Enter"] = "insertLineAfter"] = function(cm) { insertLine(cm, false); };
在文件中:
[python lib path]/dist-packages/notebook/static/components/codemirror/keymap/sublime.js
以下对我有用:
require(["codemirror/keymap/sublime", "notebook/js/cell", "base/js/namespace"],
function(sublime_keymap, cell, IPython) {
cell.Cell.options_default.cm_config.keyMap = 'sublime';
cell.Cell.options_default.cm_config.extraKeys["Ctrl-Enter"] = function(cm) {}
var cells = IPython.notebook.get_cells();
for(var cl=0; cl< cells.length ; cl++){
cells[cl].code_mirror.setOption('keyMap', 'sublime');
cells[cl].code_mirror.setOption("extraKeys", {
"Ctrl-Enter": function(cm) {}
});
}
}
);
我将 Jupyter Notebook 与 Sublime Text 键盘映射一起使用,方法是将以下内容添加到我的 Jupyter custom.js:
require(["codemirror/keymap/sublime", "notebook/js/cell"],
function(sublime_keymap, cell) {
cell.Cell.options_default.cm_config.keyMap = 'sublime';
});
...大部分情况下效果很好,除了我在 Windows 机器上,这将 "insertLineAfter" 的 Sublime 功能添加到 Ctrl+Enter 的绑定中,我不这样做不需要,因为 Ctrl+Enter 是在 Jupyter 中执行当前单元格的绑定。
有谁知道如何禁用 Ctrl+Enter 的 "insertLineAfter" 绑定吗?
可以使用 Default (OS).sublime-keymap
文件中的 unbound
命令禁用单个 Sublime Text 键绑定。即 Menu --> Preferences --> Key Bindings - User
。在您的情况下,只需添加以下行。
{ "keys": ["ctrl+enter"], "command": "unbound" },
由于 Add Line.sublime-macro
非常有用,您可能希望给它另一个绑定,例如,您可以使用 alt+enter
或 super+enter
,在这种情况下,您可以添加以下内容。
{ "keys": ["ctrl+enter"], "command": "unbound" },
{ "keys": ["alt+enter"], "command": "run_macro_file", "args":
{"file": "res://Packages/Default/Add Line.sublime-macro"} },
您可以通过注释掉以下行来防止 ctrl+enter 在 jupyter notebook 中产生新行:
cmds[map[ctrl + "Enter"] = "insertLineAfter"] = function(cm) { insertLine(cm, false); };
在文件中:
[python lib path]/dist-packages/notebook/static/components/codemirror/keymap/sublime.js
以下对我有用:
require(["codemirror/keymap/sublime", "notebook/js/cell", "base/js/namespace"],
function(sublime_keymap, cell, IPython) {
cell.Cell.options_default.cm_config.keyMap = 'sublime';
cell.Cell.options_default.cm_config.extraKeys["Ctrl-Enter"] = function(cm) {}
var cells = IPython.notebook.get_cells();
for(var cl=0; cl< cells.length ; cl++){
cells[cl].code_mirror.setOption('keyMap', 'sublime');
cells[cl].code_mirror.setOption("extraKeys", {
"Ctrl-Enter": function(cm) {}
});
}
}
);