5

有谁知道是否有办法将代码片段绑定到 Jupyter Lab 中的键盘快捷键?例如,在 R Studio 中,您可以使用Ctrl++快速编写管道运算符 ( Shift) ,我已经习惯了该功能,因此我想复制它。M%>%

我查看了设置下的键盘快捷键菜单,但我不确定如何使用 JSON 模式来编写这样的覆盖(如果它甚至可以从那里),并且文档不是很清楚。

4

2 回答 2

3

好的,我对 Jupyter Lab 没有一个好的答案,但是对于好的旧的 jupyter 笔记本,只需运行下面的单元格就会给你你想要的:

IRdisplay::display_javascript("Jupyter.keyboard_manager.edit_shortcuts.add_shortcut('Ctrl-Shift-M', {
    help : 'add pipe symbol',
    help_index : 'zz',
    handler : function (event) {
        var target = Jupyter.notebook.get_selected_cell()
        var cursor = target.code_mirror.getCursor()
        var before = target.get_pre_cursor()
        var after = target.get_post_cursor()
        target.set_text(before + ' %>% ' + after)
        cursor.ch += 5
        target.code_mirror.setCursor(cursor)
        return false;
    }}
);")
于 2018-08-07T05:53:35.323 回答
1

在 JupyterLab 2.1+ 中,您可以使用以下内容为 R 配置键盘快捷键:

{
    "shortcuts": [
        {
            "command": "apputils:run-first-enabled",
            "selector": "body",
            "keys": ["Alt -"],
            "args": {
                "commands": [
                    "console:replace-selection",
                    "fileeditor:replace-selection",
                    "notebook:replace-selection",
                ],
                "args": {"text": "<- "}
            }
        },
        {
            "command": "apputils:run-first-enabled",
            "selector": "body",
            "keys": ["Accel Shift M"],
            "args": {
                "commands": [
                    "console:replace-selection",
                    "fileeditor:replace-selection",
                    "notebook:replace-selection",
                ],
                "args": {"text": "%>% "}
            }
        }
    ]
}

Accel表示Ctrl在 Linux 和 Windows 上,或Command在 Mac 上。

只需转到Advanced Settings Editor-> Keyboard Shortcuts,粘贴并保存:

插图

JupyterLab 存储库中的相关问题:#4519#7908#10114

或者,对于更高级的功能,例如特定于内核的快捷方式或自动填充,您可以使用jupyterext-text-shortcuts扩展。

于 2021-04-18T14:04:29.207 回答