[Feat]: Optional Vim keybindings (modal editing) in the Monaco editor
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- sql, typescript
- Domain
- frontend
Research direction
Start by locating where the Monaco editor instance is created and how existing editor and keyboard preferences are persisted. Read the shortcut handling around Ctrl/Cmd+Enter and keybindings.json before assessing how the requested Vim integration would fit. Done means an off-by-default, persisted toggle controls Vim mode and its status display, while existing app shortcuts retain precedence.
Written by the indexing model from the issue text.
Description
Prerequisites
- I have written a descriptive issue title
- I have searched existing issues to ensure the feature has not already been requested
🚀 Feature Proposal
An opt-in Vim mode for the Monaco SQL editor — ideally a toggle in Settings (off by default,
persisted alongside the existing editor/keyboard preferences), plus a small status line for
mode/command display.
Since the editor is already Monaco-based, this is a fairly contained integration using one of the
existing community libraries:
brijeshb42/monaco-vim— the most widely used option.PollRobots/vim-monaco— a rewrite that avoids the
older Monaco internalsmonaco-vimdepends on, so likely a better fit if Tabularis is on a recent
Monaco build.
Roughly: grab the editor instance on mount and call initVimMode(editor, statusBarNode), storing
the handle so it can be disposed when the toggle is turned off.
Motivation
It would be great to have Vim keybindings supported in the editor. Tabularis is the best database tool I have used so far, and adding modal editor support would make it perfect. It would then fit into a Vim-centric workflow so much better. I have used most of the other DB tools out there (DataGrip, DBeaver, every tui know that I can find...) that support modal editing, and I always end back on Tabularis because of the great interface.
Example
Vim mode captures keys that Tabularis binds for its own actions (e.g. Ctrl/Cmd+Enter to execute, and anything remapped via keybindings.json). monaco-vim supports this: registering an onKeyDown handler that preventDefault()s the reserved combos before initializing Vim mode makes it ignore those events, so query execution and existing shortcuts keep working. Ideally the app's own locked/remapped shortcuts would take precedence over the Vim layer.
The existing keyboard-shortcut remapping is great for individual actions, and is the first thing that I looked at, but can't provide modal (normal/insert/visual) editing. Making a personal fork works, but I am guessing that it might be welcome addition.
More than happy to help test, and potentially to open a PR if there's interest and rough agreement on where the toggle should live and how it should interact with the existing keybinding system.
- Dominant language
- TypeScript
- Stars
- 5.1k
- Forks
- 335
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 62
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from TabularisDB/tabularis
-
feature request good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
TabularisDB/tabularis#853 ·
Maintainers usually reply within 1 day
-
Update the logo across the app: icons, dock, installers and in-app brandingPossibly taken @wajrock claimed this today. Openenhancement
TabularisDB/tabularis#873 · 1 assignee ·
Maintainers usually reply within 1 day
-
feature request help wanted
Difficulty 4/5 3-5 days Newbie friendliness 68/100
TabularisDB/tabularis#871 ·
Maintainers usually reply within 1 day
-
feature request good first issue
Difficulty 3/5 1-2 days Newbie friendliness 74/100
TabularisDB/tabularis#870 ·
Maintainers usually reply within 1 day
-
feature request help wanted
Difficulty 4/5 3-5 days Newbie friendliness 58/100
TabularisDB/tabularis#869 ·
Maintainers usually reply within 1 day
All issues in TabularisDB/tabularis
Similar issues
-
triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
github/docs#46222 · 1 comment ·
Maintainers usually reply within 1 day
-
agent-ready area: config area: skills type: chore upstream: brain-kit
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
enhancement priority:low ready-for-dev
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
bug escritorio mapa
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
marcosferr/reporte-ciudadano#4 · 1 comment ·
-
area: material/sort gemini-triaged needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
angular/components#33933 ·
Maintainers usually reply within 1 day