我使用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中执行当前单元格的绑定。
有没有人知道如何禁用" insertLineAfter"按Ctrl + Enter绑定吗?
答案 0 :(得分:7)
以下为我工作:
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) {}
});
}
}
);
答案 1 :(得分:4)
您可以通过注释掉以下行来阻止ctrl + enter在jupyter笔记本中生成一个新行:
cmds[map[ctrl + "Enter"] = "insertLineAfter"] = function(cm) { insertLine(cm, false); };
在文件中:
[python lib path]/dist-packages/notebook/static/components/codemirror/keymap/sublime.js
答案 2 :(得分:0)
可以使用unbound
文件中的Default (OS).sublime-keymap
命令禁用单个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"} },