2

我使用Jupyter筆記本採用的崇高文字鍵盤映射,通過添加以下到我的Jupyter custom.js崇高的鍵盤佈局禁用Ctrl + Enter在jupyter筆記本

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」綁定嗎?

回答

0

使用Default (OS).sublime-keymap文件中的unbound命令可以禁用單個Sublime文本鍵綁定。即Menu --> Preferences --> Key Bindings - User。在你的情況下,只需添加以下行。

{ "keys": ["ctrl+enter"], "command": "unbound" } 

由於Add Line.sublime-macro是非常有用的,你不妨給它一個綁定,例如,你可以使用alt+entersuper+enter在這種情況下,你會添加以下。

{ "keys": ["ctrl+enter"], "command": "unbound" } 

{ "keys": ["alt+enter"], "command": "run_macro_file", "args": 
    {"file": "res://Packages/Default/Add Line.sublime-macro"} }, 
2

可以防止按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 
3

我繼工作:

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) {} 
      }); 
     } 
    } 
);