【问题标题】:Disable Ctrl+Enter sublime keymap in jupyter notebook在 jupyter notebook 中禁用 Ctrl+Enter sublime 键盘映射
【发布时间】:2016-07-22 22:45:05
【问题描述】:

我正在使用带有 Sublime Text 键盘映射的 Jupyter Notebook,方法是将以下内容添加到我的 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”绑定?

【问题讨论】:

    标签: windows sublimetext key-bindings codemirror jupyter-notebook


    【解决方案1】:

    以下对我有用:

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

    【讨论】:

      【解决方案2】:

      您可以通过注释掉以下行来防止 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
      

      【讨论】:

        【解决方案3】:

        可以使用Default (OS).sublime-keymap 文件中的unbound 命令禁用单个 Sublime Text 键绑定。即Menu --&gt; Preferences --&gt; 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"} },
        

        【讨论】:

        • 这不是 OP 问题的答案。
        • @Tobia 是的,它在 4 年前就被海报接受了。该问题询问如何在 Windows 操作系统上的 Sublime Text 中解除 "InsertLineAfter"Ctrl+Enter 的绑定。我说明了如何做到这一点并建议如何将该功能绑定到不同的键,因为特定的行插入很有用。我建议你重新阅读这个问题和我对它的回答。
        • 不,问题是关于“jupyter notebook 中的 sublime 键盘映射”,它与 Sublime Text 无关
        猜你喜欢
        • 2017-11-22
        • 1970-01-01
        • 2015-11-06
        • 1970-01-01
        • 2011-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        相关资源
        最近更新 更多