Files
openidea/src/features/vim/Vim.module.css
T
l0ng-ai 7146779f6c feat(vim): Built-in Vim mode modelled on IdeaVim (#55)
Built-in Vim emulation on @replit/codemirror-vim (approved dependency), modelled on IdeaVim: `vim.toggle` (Tools › Vim, status widget, Settings › Editor › Vim), mode widget (NORMAL / INSERT / VISUAL / V-LINE / V-BLOCK / REPLACE), IdeaVim-style shortcut conflict handlers (Vim / IDE per key) through a generic `registerKeyClaim()` in the keymap dispatcher, Escape closing popups first, a safe subset of ~/.openideavimrc / ~/.ideavimrc (set, map variants, mapleader, :action / <Action>()), Ex commands :w :wa :q :qa :wq :x :action. Covers file editors, diff editable side and merge result via a new `embeddedEditorExtensions` extension point.

Verified in the app on macOS: motions/operators, i/Esc/V mode widget, :w saves, Ctrl+R redoes in Vim without running Run, toggling off restores plain editing. Not verified on Windows/Linux.

Fixes #27

https://claude.ai/code/session_01VUYsdXA2nkF5v6zsC93dpn
2026-10-27 11:43:37 +08:00

69 lines
1.1 KiB
CSS

.status {
min-width: 7ch;
justify-content: center;
font-weight: 600;
}
.status[data-mode="insert"] {
color: var(--success);
}
.status[data-mode="visual"] {
color: var(--info);
}
.status[data-mode="replace"] {
color: var(--warning);
}
.off {
color: var(--fg-subtle);
font-weight: normal;
}
.page {
display: flex;
flex-direction: column;
gap: 16px;
color: var(--fg);
font-size: var(--fs-ui);
}
.section {
display: flex;
flex-direction: column;
gap: 6px;
}
.header {
display: flex;
align-items: center;
justify-content: space-between;
color: var(--fg-muted);
}
.hint {
margin: 0;
color: var(--fg-muted);
font-size: var(--fs-small);
}
.mono {
font-family: var(--font-mono);
font-size: var(--fs-small);
}
.ignored {
margin: 0;
padding-left: 16px;
color: var(--fg-muted);
font-size: var(--fs-small);
}
.table {
width: 100%;
border-collapse: collapse;
border: 1px solid var(--border-strong);
}
.table th {
text-align: left;
font-weight: normal;
color: var(--fg-muted);
padding: 4px 8px;
border-bottom: 1px solid var(--border-strong);
}
.table td {
padding: 2px 8px;
height: 28px;
}