All Projects → kpe → jupyterlab-emacskeys

kpe / jupyterlab-emacskeys

Licence: MIT license
Emacs keybindings inside JupyterLab notebook cells

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to jupyterlab-emacskeys

jupyterlab-link-share
JupyterLab Extension to easily share a link to a running server on Binder
Stars: ✭ 40 (+48.15%)
Mutual labels:  jupyterlab-extension
jupyterlab discovery
A JupyterLab extension to facilitate the discovery and installation of other extensions
Stars: ✭ 47 (+74.07%)
Mutual labels:  jupyterlab-extension
spellchecker
Spellchecker for JupyterLab notebook markdown cells and file editor.
Stars: ✭ 162 (+500%)
Mutual labels:  jupyterlab-extension
theme-cookiecutter
A cookiecutter template to help you make new JupyterLab theme extensions
Stars: ✭ 47 (+74.07%)
Mutual labels:  jupyterlab-extension
jupyterlab-custom-css
Add custom CSS rules for JupyterLab
Stars: ✭ 32 (+18.52%)
Mutual labels:  jupyterlab-extension
jupyterlite
Wasm powered Jupyter running in the browser 💡
Stars: ✭ 3,039 (+11155.56%)
Mutual labels:  jupyterlab-extension
jupyter-extensions
Jupyter extensions for SWAN
Stars: ✭ 56 (+107.41%)
Mutual labels:  jupyterlab-extension
jupyter-archive
A Jupyter/Jupyterlab extension to make, download and extract archive files.
Stars: ✭ 57 (+111.11%)
Mutual labels:  jupyterlab-extension
jupyter-offlinenotebook
Save and load notebooks to local-storage
Stars: ✭ 39 (+44.44%)
Mutual labels:  jupyterlab-extension
jupyterlab-jupytext
A JupyterLab extension for Jupytext
Stars: ✭ 24 (-11.11%)
Mutual labels:  jupyterlab-extension
knowledgelab
KnowledgeRepo + JupyterLab
Stars: ✭ 46 (+70.37%)
Mutual labels:  jupyterlab-extension
jupyterlab-vimrc
add a basic vimrc to jupyterlab vim
Stars: ✭ 59 (+118.52%)
Mutual labels:  jupyterlab-extension
nbcelltests
Cell-by-cell testing for production Jupyter notebooks in JupyterLab
Stars: ✭ 66 (+144.44%)
Mutual labels:  jupyterlab-extension
jupyterlab iframe
View html as an embedded iframe in JupyterLab
Stars: ✭ 91 (+237.04%)
Mutual labels:  jupyterlab-extension
jupyterlab xkcd
Random xkcd comic in a JupyterLab panel
Stars: ✭ 30 (+11.11%)
Mutual labels:  jupyterlab-extension
jupyterlab-starters
Starter notebooks and directories in JupyterLab
Stars: ✭ 32 (+18.52%)
Mutual labels:  jupyterlab-extension
jupyter-scatter
Interactive 2D scatter plot widget for Jupyter Lab and Notebook. Scales to millions of points!
Stars: ✭ 172 (+537.04%)
Mutual labels:  jupyterlab-extension
ipyp5
p5.js Jupyter Widget
Stars: ✭ 33 (+22.22%)
Mutual labels:  jupyterlab-extension
jupyterlab powerpoint
Creating PowerPoints from jupyter notebooks and vice versa
Stars: ✭ 19 (-29.63%)
Mutual labels:  jupyterlab-extension
jupyterlab-h5web
A JupyterLab extension to explore and visualize HDF5 file contents. Based on https://github.com/silx-kit/h5web.
Stars: ✭ 41 (+51.85%)
Mutual labels:  jupyterlab-extension

jupyterlab-emacskeys

npm version Build Status npm downloads

Currently JupyterLab seems to support emacs keybindings only in its text editor, but not in the notebook cells. This might be simply a bug (actually it seems to be intentional - see #3885), as changing the default config in codemirror would help, but until it is fixed, I'm using this method of changing the default keymap in codemirror to emacs.

Origin

I was badly missing the emacs keybindings support in the notebook cells in the current version of JupyterLab, and as I was not familiar with the jupyter development environment, I've just forked the jwkvam/jupyterlab-vim repo and adapted it to simply use keyMap=emacs in codemirror.

Install

Prerequisites

  • JupyterLab 1.0.1

Install or upgrade

jupyter labextension install jupyterlab-emacskeys

Tweaks

Because some common emacs keybindings are already reserved in jupyter-lab, you will have to disable them like this (see issue #1), i.e.:

{

    "shortcuts": [
        {
            "command": "application:toggle-left-area",
            "keys": [
                "Accel B"
            ],
            "selector": "body",
            "disabled": true
        },
        {
            "command": "application:close",
            "keys": [
                "Alt W"
            ],
            "selector": ".jp-Activity",
            "disabled": true
        },
        {
            "command": "notebook:split-cell-at-cursor",
            "keys": [
                "Ctrl Shift -"
            ],
            "selector": ".jp-Notebook.jp-mod-editMode",
            "disabled": true
        },
        {
            "command": "apputils:print",
            "keys":["Accel P"],
            "selector": "body",
            "disabled": true
        },
        {
            "command": "documentsearch:start",
            "keys": [
                "Accel F"
            ],
            "selector": ".jp-mod-searchable",
            "disabled": true
        },
    ]
}

And because Chrome or Firefox tend to capture some shortcuts, it might help setting the Emacs key-theme for all GTK applications like this:

gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"

or by editing ~/.config/gtk-3.0/settings.ini like this:

[Settings]
gtk-key-theme-name = Emacs

Uninstall

jupyter labextension uninstall jupyterlab-emacskeys

Development

For a development install (requires npm version 4 or later), do the following in the repository directory:

npm install
npm run build
jupyter labextension link .

To rebuild the package and the JupyterLab app:

npm run build
jupyter lab build
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].