Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Feat]: Optional Vim keybindings (modal editing) in the Monaco editor

Open
#686 0 comments 1 reaction 0 assignees View on GitHub

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

feature request
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 internals monaco-vim depends 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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from TabularisDB/tabularis

All issues in TabularisDB/tabularis

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.