Atom/Sublime喜欢Jupyter中的Multiple选择

Ran*_*ans 13 keymapping jupyter-notebook

如何通过键盘快捷键在Jupyter笔记本中选择匹配的关键字?例如,在Atom/Sublime编辑器中,当光标位于'var'时,我可以点击cmd + Dmac(或Ctrl + d在Windows上),每次我这样做时,下一个'var'将被突出显示.然后我可以输入新的变量名称,并将"var"替换为我输入的内容.

var = "hello"
print(var)
print(var)
Run Code Online (Sandbox Code Playgroud)

在Jupyter笔记本中是否有相同的东西?

Sar*_*ran 13

添加custom.js

C:\Users\username\.jupyter\custom      # for Windows and 
~/.jupyter/custom/                     # for Mac 
Run Code Online (Sandbox Code Playgroud)

内容

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) {}
            });
        }
    } 
);
Run Code Online (Sandbox Code Playgroud)

并重新启动jupyter.现在Ctrl+D应该像它一样工作Sublime.

您可以看到Ctrl-Enter禁用该功能,因为运行当前单元格非常方便,而不是为大多数用户创建新行.您可以通过注释该行来选择具有该功能.

您可以以类似的方式禁用您不想要的其他密钥配置.

在此输入图像描述

  • ctrl + d为我删除行。关于如何解决此问题的任何想法? (2认同)

小智 5

最新(且简单)的方法

目前在 Jupyter Notebook 中实现类似 Sublime 的键盘映射的最佳方法:从jupyter - contrib-nbextensions中选择 CodeMirror Keymap正如主页报道的那样:

jupyter_contrib_nbextensions 包包含社区贡献的非官方扩展的集合,这些扩展可以为 Jupyter Notebook 添加功能。

我个人使用这个包中的几个扩展,我发现它们非常有用。正如安装文档中所报告的,您只需运行:

pip install jupyter_contrib_nbextensions
Run Code Online (Sandbox Code Playgroud)

安装扩展(或者更好,我建议:

python -m pip install jupyter_contrib_nbextensions
Run Code Online (Sandbox Code Playgroud)

其中python指向您在 Jupyter Notebook 中使用的安装的 python 可执行文件)。conda如果您愿意,也可以使用。

无论如何,您需要复制一些 JS 和 CSS 内容以使扩展在 Jupyter Notebook 中工作,您可以通过以下方式实现:

jupyter contrib nbextension install --user
Run Code Online (Sandbox Code Playgroud)

再次假设jupyter指向您用来运行笔记本的 jupyter 可执行文件。

此时,您只需启用扩展:导航nbextensions_configurator(作为包的依赖项jupyter_contrib_nbextensions),您可以通过 Jupyter Notebook 仪表板(明确地说,是您打开来运行笔记本的页面)轻松完成此操作浏览选项卡并选中与Select CodeMirror KeymapNbextensions对应的框。

完毕!启动笔记本,单击“编辑”>“键盘映射”>“Sublime”就足以实现所需的行为。

键位图选择

我知道这是一个相当老的问题,但我在发现它之前碰巧遇到了它jupyter_contrib_nbextensions(特别是Select CodeMirror Keymap扩展)。因此,我决定发布这个答案,希望能帮助像我这样的其他人,并让他们避免进一步搜索或弄乱自定义的 JS 文件(这可能会吓到某人)。