jupyterlab-vim
jupyterlab-vim copied to clipboard
Jupypter-vim doesn't get normal mode in cell editing.
Description
Python 3.10.9 Jupyter lab 4.1.0 Jupyterlab-vim 4.1.3
Jupyterlab-vim doesn't work in vim mode on cell. The expected behavior is to get back to normal mode when esc is hit in insert mode. but it goes back to Jupyter command mode instead.
and lab 4.1.0, vim 4.1.3 combination gets the fail warning in connection process such that
Failed validating settings (@axlair/jupyterlab_vim:plugin): Additional properties are not allowed ('cmdModeKeys', 'enabledInEditors' were unexpected)
Failed validating 'additionalProperties' in schema:
{'additionalProperties': False,
'definitions': {'shortcut': {'properties': {'command': {'description': 'The '
'new '
'vim '
'keybinding, '
'or '
"'left "
'hand '
"side' "
'of '
'the '
'keybinding, '
'e.g. '
'`M`',
'title': 'Keybinding',
'type': 'string'},
'context': {'default': 'normal',
'description': 'Vim '
'mode '
'in '
'which '
'the '
'keybinding '
'applies',
'enum': ['normal',
'insert',
'visual'],
'title': 'Mode'},
'enabled': {'default': True,
'description': 'Whether '
'this '
'keybinding '
'is '
'enabled '
'or '
'not.',
'type': 'boolean'},
'keys': {'description': 'The '
"'right "
'hand '
"side' "
'of '
'the '
'keybinding '
'to '
'be '
'executed, '
'e.g. '
'`:noh<cr>`',
'title': 'The '
'key '
'sequence '
'to '
'execute',
'type': 'string'},
'mapfn': {'default': 'map',
'description': 'Vim '
'map '
'function '
'to '
'use',
'enum': ['map',
'noremap'],
'title': 'Map '
'function'}},
'required': ['command', 'keys'],
'type': 'object'}},
'description': 'Notebook Vim Settings',
'jupyter.lab.menus': {'main': [{'id': 'jp-mainmenu-settings',
'items': [{'rank': 38,
'type': 'separator'},
{'command': 'jupyterlab-vim:toggle',
'rank': 38},
{'rank': 38,
'type': 'separator'}]}]},
'jupyter.lab.shortcuts': [{'command': 'notebook:enter-command-mode',
'disabled': True,
'keys': ['Escape'],
'selector': '.jp-Notebook.jp-mod-editMode'},
{'command': 'notebook:undo-cell-action',
'keys': ['Ctrl O', 'U'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'notebook:split-cell-at-cursor',
'keys': ['Ctrl O', '-'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:cut-cell-and-edit',
'keys': ['Ctrl O', 'D'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:copy-cell-and-edit',
'keys': ['Ctrl O', 'Y'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:paste-cell-and-edit',
'keys': ['Ctrl O', 'P'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'notebook:extend-marked-cells-below',
'keys': ['Ctrl Shift J'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'notebook:extend-marked-cells-below',
'keys': ['Ctrl Shift J'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:extend-marked-cells-above',
'keys': ['Ctrl Shift K'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'notebook:extend-marked-cells-above',
'keys': ['Ctrl Shift K'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:insert-cell-above',
'keys': ['Ctrl O', 'Shift O'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'notebook:insert-cell-above',
'keys': ['Ctrl O', 'Ctrl O'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'notebook:insert-cell-below',
'keys': ['Ctrl O', 'O'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:select-below-execute-markdown',
'keys': ['Ctrl J'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:select-above-execute-markdown',
'keys': ['Ctrl K'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:leave-insert-mode',
'keys': ['Escape'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:leave-insert-mode',
'keys': ['Ctrl ['],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:enter-insert-mode',
'keys': ['Ctrl I'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'vim:run-cell-and-edit',
'keys': ['Ctrl Enter'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:run-select-next-edit',
'keys': ['Shift Enter'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'notebook:enter-command-mode',
'keys': ['Shift Escape'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:merge-and-edit',
'keys': ['Shift M'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:change-cell-to-code',
'keys': ['Accel 1'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'notebook:change-cell-to-markdown',
'keys': ['Accel 2'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'notebook:change-cell-to-raw',
'keys': ['Accel 3'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:select-first-cell',
'keys': ['Ctrl O', 'G'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:select-last-cell',
'keys': ['Ctrl O', 'Ctrl G'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'vim:select-first-cell',
'keys': ['G', 'G'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'vim:select-last-cell',
'keys': ['Shift G'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:copy-cell',
'keys': ['Y', 'Y'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:cut-cell',
'keys': ['D', 'D'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:paste-cell-above',
'keys': ['Shift P'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:paste-cell-below',
'keys': ['P'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:insert-cell-below',
'keys': ['O'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:insert-cell-above',
'keys': ['Shift O'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:undo-cell-action',
'keys': ['U'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:move-cell-down',
'keys': ['Ctrl E'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:move-cell-up',
'keys': ['Ctrl Y'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'vim:center-cell',
'keys': ['Z', 'Z'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:hide-cell-code',
'keys': ['Z', 'C'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:show-cell-code',
'keys': ['Z', 'O'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:hide-all-cell-code',
'keys': ['Z', 'M'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'notebook:show-all-cell-code',
'keys': ['Z', 'R'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook:focus'},
{'command': 'vim:center-cell',
'keys': ['Ctrl O', 'Z', 'Z'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode'},
{'command': 'tooltip:launch-notebook',
'keys': ['Ctrl G'],
'selector': ".jp-NotebookPanel[data-jp-vim-mode='true'] "
'.jp-Notebook.jp-mod-editMode '
'.jp-InputArea-editor:not(.jp-mod-has-primary-selection)'}],
'properties': {'enabled': {'default': True,
'description': 'Enable/disable notebook '
'vim (may require a page '
'refresh)',
'title': 'Enabled',
'type': 'boolean'},
'extraKeybindings': {'default': [],
'items': {'$ref': '#/definitions/shortcut'},
'title': 'Extra Vim Keybindings',
'type': 'array'}},
'title': 'Notebook Vim',
'type': 'object'}
On instance:
{'cmdModeKeys': {'escToCmdMode': False,
'shiftEscOverrideBrowser': True},
'enabled': True,
'enabledInEditors': True,
'extraKeybindings': []}
The lastes versions combination might have some problem but I couldn't resolve it.
Thanks!