Vim-style keyboard shortcuts for notebook cells in JupyterLab, enabling modal editing with command and insert modes.
jupyterlab-vim is a JupyterLab extension that adds Vim keybindings for editing notebook cells. It transforms JupyterLab's edit mode into Vim-style command and insert modes, allowing users to navigate, manipulate cells, and execute commands using familiar Vim shortcuts. This solves the problem of inefficient, mouse-dependent editing in notebooks for Vim enthusiasts.
Data scientists, researchers, and developers who use JupyterLab regularly and are proficient with Vim keybindings, seeking a faster, keyboard-driven workflow.
Developers choose jupyterlab-vim because it seamlessly integrates Vim's modal editing philosophy into JupyterLab, reducing context switching and boosting productivity for those already comfortable with Vim. It offers a comprehensive set of shortcuts for cell operations that aren't natively available.
:neckbeard: Vim notebook cell bindings for JupyterLab
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Splits Jupyter edit mode into Vim command and insert modes, as described in the Modes section, allowing familiar navigation and text manipulation for Vim users.
Provides Vim-style chords for splitting, copying, pasting, and deleting cells without mouse use, such as Ctrl-O, D for cut and Y, Y for yank from the key bindings table.
Includes shortcuts like Ctrl-J/K for cell selection and Ctrl-O, G for first cell, enhancing keyboard-centric workflow for faster notebook editing.
Supports Vim Ex commands like :write to save the notebook and :quit to return to command mode, mimicking traditional Vim functionality for seamless integration.
Requires JupyterLab 1.0 as per prerequisites, which may not be compatible with newer versions, limiting its use in updated environments without modifications.
The keybindings are predefined with no customization options mentioned in the README, potentially causing conflicts with user preferences or other extensions.
Installation involves command-line steps like 'jupyter labextension install' and potential build requirements for development, which could be a barrier for less technical users.