Jupyter notebook Jupyter中类似原子/崇高的多重选择

Jupyter notebook Jupyter中类似原子/崇高的多重选择,jupyter-notebook,keymapping,Jupyter Notebook,Keymapping,如何通过键盘快捷键在Jupyter笔记本中选择匹配的关键字?例如,在Atom/Sublime编辑器中,我可以在mac上点击cmd+D(或在Windows上点击Ctrl+D),同时光标位于“var”上,每次点击时,下一个“var”都会高亮显示。然后我可以键入新的变量名,“var”将替换为我键入的任何变量 var = "hello" print(var) print(var) Jupyter笔记本中是否有类似的工具?添加custom.js C:\Users\username\.jupyter\cu

如何通过键盘快捷键在Jupyter笔记本中选择匹配的关键字?例如,在Atom/Sublime编辑器中,我可以在mac上点击
cmd+D
(或在Windows上点击
Ctrl+D
),同时光标位于“var”上,每次点击时,下一个“var”都会高亮显示。然后我可以键入新的变量名,“var”将替换为我键入的任何变量

var = "hello"
print(var)
print(var)

Jupyter笔记本中是否有类似的工具?

添加
custom.js

C:\Users\username\.jupyter\custom      # for Windows and 
~/.jupyter/custom/                     # for Mac 
心满意足

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) {}
            });
        }
    } 
);
require([“codemirror/keymap/sublime”、“notebook/js/cell”、“base/js/namespace”],
功能(升华键图、单元格、IPython){
cell.cell.options_default.cm_config.keyMap='sublime';
cell.cell.options\u default.cm\u config.extraKeys[“Ctrl-Enter”]=函数(cm){}
var cells=IPython.notebook.get_cells();
对于(var cl=0;cl
重新启动jupyter。现在,
Ctrl+D
应该像在
Sublime
中一样工作

您可以看到,
Ctrl-Enter
功能被禁用,因为对于大多数用户来说,运行当前单元格比创建新行更方便。您可以通过注释该行来选择具有该功能

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


上述解决方案对我很有效,但我发现当我按enter键时,它会产生输入“tab”字符的不良效果。以下是相关的GitHub问题:


根据那篇文章,我发现这个解决方案提供了正确的
ctrl
+
d
行为,并将制表符保留为空格

require(["codemirror/keymap/sublime", "notebook/js/cell", "base/js/namespace"],
    function(sublime_keymap, cell, IPython) {
        // setTimeout(function(){ // uncomment line to fake race-condition
        cell.Cell.options_default.cm_config.keyMap = 'sublime';
        var cells = IPython.notebook.get_cells();
        for(var c=0; c< cells.length ; c++){
            cells[c].code_mirror.setOption('keyMap', 'sublime');
        }
        // }, 1000)// uncomment  line to fake race condition 
    } 
);
require([“codemirror/keymap/sublime”、“notebook/js/cell”、“base/js/namespace”],
功能(升华键图、单元格、IPython){
//setTimeout(function(){//取消对伪竞争条件行的注释
cell.cell.options_default.cm_config.keyMap='sublime';
var cells=IPython.notebook.get_cells();
对于(var c=0;c
在Jupyter Lab中,现在可以在“设置>文本编辑器键映射>升华文本”中进行设置。

我不这么认为,不。虽然Jupyter笔记本可以方便地进行修补,但我发现它们很烦人(充其量)因为缺少这样的功能而被用作IDE/文本编辑器的替代品(更不用说简单的查找和替换功能了!)我想你是对的,不过我确实找到了一个解决方法。我在Jupyter alread中激活了VIM键绑定,在Google上搜索发现VIM已经有了一种处理类似事情的方法:CTRL+D似乎可以在Google Colab中工作,正如你所描述的(在Chromebook上)。另请参见:
ctrl
+
d
为我删除该行。您知道如何解决此问题吗?@maxbellec检查此链接,若要查找custom.js文件,如果您已经有其他
require
函数,是否只需将此函数添加到新行?或者如何工作?如何添加ctrl+alt+向下箭头命令?它看起来非常有用lon
Ubutnu/Linux
,对于我来说,在location-
~/.jupyter/
下,找不到
custom
文件夹。因此,您可能需要创建名为
custom
的文件夹,然后在此文件夹中添加带有上述给定内容的
custom.js
。这是用于文本编辑器,而不是ipynb文件