demo.mp4
vscode extension with minimal whichkey, lazyvim, terax, yazi, zsh and kanata setup
Table of Contents
- Neovim keymaps
- Keybindings.json
- Terminal
- If Touchcursor Keyboard Layout Started
- Installation
- Vim Cheatsheets / Tutorials
- Related projects
| text-object keymap | requires | repeat action key | finds and autojumps? | text-object name | description | inner / outer |
|---|---|---|---|---|---|---|
ia, aa | . | yes | _argument | whole argument/parameter of a function | outer includes comma | |
ib, ab | . | yes | _braces | find the nearest inside of ()[]{} | outer includes braces | |
iB, aB | . | yes | _brackets | find the nearest inside of {}:help iB | outer includes brackets | |
id, ad | neovim | . | yes | diagnostic | find errors, warnings, info or hints (only works inside neovim and requires LSP) | outer same as inner |
ie, ae | RetroVim | . | line | from start to end of line without beginning whitespaces (line wise) | outer includes begining whitespaces | |
if, af | RetroVim | . | yes | _function_call | like function args but only when a function is called | outer includes the function called |
ih, ah | RetroVim | . | yes | _html_attribute | attribute in html/xml like href="foobar.com" | inner is only the value inside the quotes trailing comma and space |
ii, ai | . | indent_noblanks | surrounding lines with same or higher indentation delimited by blanklines | outer includes line above | ||
iI, aI | RetroVim | . | indent | surrounding lines with same or higher indentation | outer includes line above and below | |
ik, ak | RetroVim | . | yes | _key | key of key-value pair, or left side of a assignment | outer includes spaces |
il, al | RetroVim | . | yes | +last | go to last mini.ai text-object (which start with _) | requires i/a example vilk |
im, am | RetroVim | . | yes | _number | numbers, similar to <C-a> | inner: only pure digits, outer: number including minus sign and decimal point |
in, an | RetroVim | . | yes | +next | go to Next mini.ai text-object (which start with _) | requires i/a example viNk |
io, ao | RetroVim | . | yes | _whitespaces | whitespace beetween characters | outer includes surroundings |
ip, ap | . | paragraph | blanklines can also be treat as paragraphs when focused on a blankline | outer includes below lines | ||
iq, aq | . | yes | _quotes | inside of ` ` or ' ' or " " | outer includes openning and closing quotes | |
is, as | . | sentence | sentence delimited by dots of blanklines :help sentence | outer includes spaces | ||
it, at | . | yes | _tag | inside of a html/jsx tag | outer includes openning and closing tags | |
iu, au | RetroVim | . | _subword | like iw, but treating -, _, and . as word delimiters and only part of camelCase | outer includes trailing _,-, or space | |
iv, av | RetroVim | . | yes | _value | value of key-value pair, or right side of a assignment | outer includes trailing commas or semicolons or spaces |
iw, aw | . | word | from cursor to end of word (delimited by punctuation or space) | outer includes whitespace ending | ||
iW, aW | . | WORD | from cursor to end of WORD (includes punctuation) | outer includes whitespace ending | ||
ix, ax | RetroVim | . | yes | _Hex | hexadecimal number or color | outer includes hash # |
iy, ay | RetroVim | . | same_indent | surrounding lines with only same indent (delimited by blankspaces or commented lines) | outer includes blankspaces | |
i?, a? | RetroVim | . | yes | _user_prompt | will ask you for enter the delimiters of a text object (useful for dot repeteability) | outer includes surroundings |
i(, i), a(, a) | . | yes | ( or ) | inside () | outer includes surroundings | |
i[, i], a[, a] | . | yes | [ or ] | inside [] | outer includes surroundings | |
i{, i}, a{, a} | . | yes | { or } | inside {} | outer includes surroundings | |
i<, i>, a<, a> | . | yes | < or > | inside <> | outer includes surroundings | |
i`, a` | . | yes | apostrophe | inside ` ` | outer includes surroundings | |
i<punctuation>, a<punctuation> | RetroVim | . | yes | <punctuation> | inside <punctuation><punctuation> | outer includes surroundings |
| keymap | requires | mode | repeat action key | repeat jump key | text-object description | normal mode = n = operator | operating-pending mode = o = text-object | visual mode = v = x = motion | examples in normal mode |
|---|---|---|---|---|---|---|---|---|---|
[c / ]c | RetroVim | n,o,x | . | previous/next comment | finds and jumps | jumps | uses selection | v]c selects from cursor position until next comment | |
[d / ]d | RetroVim | n,o,x | . | previous/next diagnostic | finds and jumps | jumps | uses selection | v]d selects from cursor position until next diagnostic | |
[h / ]h | RetroVim | n,o,x | . | previous/next git hunk | finds and jumps | jumps | uses selection | v]h selects from cursor position until next git hunk | |
[i / ]i | RetroVim | n,o,x | . | previous/next indent | finds and jumps | jumps | uses selection | v]i selects from cursor position until next indent | |
g[/g] | RetroVim | n,o,x | . | +prev/+next textobj (only textobj with _ prefix) | followed by text-object | finds and jumps | uses selection | g]q next end of quotation | |
g\ / g| | RetroVim | n,o,x | . | \ / | | +end/+start of textobj (any inner/outer textobj) | followed by text-object | finds and jumps | uses selection (\ / | to reselect) | dg\iq delete until inner end of quotation (. to repeat) |
qq ... q | RetroVim | n,x | . | \ or @q + @@ | repeats ... macro | followed by text-object | selects from cursor position | qqviqq selects quotation (\ to repeat) | |
qw ... q | RetroVim | n,x | . | | or @w + @@ | repeats ... macro | followed by text-object | selects from cursor position | qwdiqq delete inner quotation (| to repeat) | |
g;/g, | n | go backward/forward in :changes | jumps | g; go to last change | |||||
g. | RetroVim | n,o,x | jump to last change | jumps | won't jump | uses selection | vg. selects from cursor position until last change | ||
ga | RetroVim | n,x | +align | followed by textobject/motion | uses selected region | gaip= or vipga= aligns a paragraph by = | |||
gb | RetroVim | n,x | . | +blackhole register | followed by textobject/motion | deletes selection | gbip or vipgb deletes a paragraph without copying | ||
gB | RetroVim | n,x | . | blackhole linewise | text-object not required | deletes line | gB. deletes two lines without saving it in the register | ||
gc | n,o,x | . | +comment (vgc in normal mode will select a block comment) | followed by textobject/motion | won't jump | uses selection | gcip or vipgc comments a paragraph | ||
gC | RetroVim | n,o,x | . | block comment (supports selection vgC or just gC) | select text-object under cursor | won't jump | reselects | vgC selects current block of comment | |
gd | n | go to definition | jumps | gd go to definition of word under cursor | |||||
gD | RetroVim | x | git diff/hunk (vscode selects from cursor position to end of diff) | won't jump | reselects | vgD selects modified code | |||
ge/gE | n,o,x | previous end of word/WORD (WORD omits punctuation) | jumps | uses cursor position | uses selection | vge selects from cursor position until previous end of word | |||
gf | n,x | go to file under cursor | jumps | uses selection | gf open in a tab the path under cursor | ||||
gg/G | n,o,x | . | first/last line | jumps | uses cursor position | uses selection | vgg selects until first line | ||
gi | n,x | last position of cursor in insert mode | finds and jumps | uses selection | vgi selects until last insertion | ||||
gj/gk | n,o,x | . | go down/up when wrapped | jumps | uses cursor position | uses selection | vgj selects one line down | ||
gJ | n,x | . | join below lines | joins | uses selection | vgJ joins selected lines into one line | |||
gm | RetroVim | n,x | +multiply (duplicate text) operator | won't jump | uses selection | gmap or vapgm duplicates paragraph without replacing clipboard | |||
gM | n,x | go to middle line | jumps | uses selection | vgM selects until middle of the line | ||||
gp/gn | RetroVim | n,o,x | . | prev/next find | text-object not required | finds and jumps | uses selection | cgn??? replaces last search with ??? forwardly | |
go | neovim | x | jsx/tsx comment (only inside neovim) | uses selection | vipgt comments out a paragraph with {/* */} | ||||
gq | n,x | . | +format selection/comments 80chars (LSP overrides it) | requires a textobject | applies to selection | gqip or vipgq formats a paragraph | |||
gr | RetroVim | n,x | . | +replace (with register) operator | followed by text-object/motion | applies to selection | griw or viwgr replaces word with register (yanked text) | ||
gs | RetroVim | n,x | . | +sort Operator | followed by text-object/motion | uses selection | gsip or vipgs sorts a paragraph | ||
gS | RetroVim | n,x | . | split/join arguments | toggles inside {},[],() | followed by operator | vipgS joins selected lines in one line | ||
gu/gU | n,x | . | +to lowercase/uppercase | requires a text-object | applies to selection | gUiw (neovim and cvim only) or viwgU uppercase a word | |||
gv | n,x | last selected | finds and jumps | reselects | vgv selects last selection | ||||
gw | n,x | . | split/join comments/lines 80chars (keeps cursor position) | requires a text-object | applies to selection | gwip or vipgw split/join a paragraph limited by 80 characters | |||
gx | RetroVim | n,x | . | +exchange (text) Operator | followed by text-object/motion | uses selection | gxiw or viwgx exchanges word with another gxiw or viwgx or . | ||
gy/gY | RetroVim | n | . | redo register (dot to paste forward/bacward) | paste | gy..... paste deleted lines by history | |||
g-/g+ | RetroVim | n,x | . | decrement/increment number | selects number under cursor | uses selected number | g+.. or 3g+ increments by 3 | ||
g<Up>/g<Down> | RetroVim | n,x | numbers ascending/descending | selects number under cursor | uses selected number | g<Up> increases selected numbers ascendingly | |||
= | n,x | . | +autoindent | followed by text-object | uses selection | == autoindents line | |||
</> | n,x | . | +indent left/right | followed by text-object | uses selection | << indents to left a line | |||
0/$ | n,o,x | . | start/end of line | jumps | uses selection | d$j. deletes two end-of-lines | |||
^ | n,o,x | . | start of line (non-blankline) | jumps | uses selection | d^ deletes until start of line (after whitespace) | |||
% | n,o,x | matching character: '()', '{}', '[]' | finds and jumps | finds and jumps | d% deletes until bracket | ||||
(/) | n,o,x | . | prev/next sentence | jumps | uses selection | d(. deletes until start of sentence (two times) | |||
{/} | n,o,x | . | prev/next empty line (before a paragraph) | jumps | uses selection | d{. deletes until next empty line (two times) | |||
[[/]] | n,o,x | . | prev/next section | jumps | uses selection | d[[ deletes until start of section | |||
b/w | n,o,x | . | prev/next word | jumps | uses selection | db deletes until start of word | |||
B/W | n,o,x | . | prev/next WORD | jumps | uses selection | dW. deletes 2 WORDS | |||
e/E | n,o,x | . | end of word/WORD | jumps | uses selection | de deletes until end of word | |||
/ | RetroVim | n,o,x | . | search with labels like flash.nvim | jumps | finds and jumps | uses selection | d/ then search then label to delete c/ to change v/ to select / to jump | |
f | cvim | n,o,x | . | search with labels like flash.nvim | jumps | finds and jumps | uses selection | f then search then label or operator + f + search + label | |
f/F | n,o,x | . | ;forward ,backward | move to next/prev char (f forward, F backward for vscode-neovim) | jumps | uses selection | df, deletes until a next , | ||
t/T | n,o,x | . | ;forward ,backward | move before next/prev char (t forward, T backward for vscode-neovim) | jumps | uses selection | dt, deletes before next , | ||
s | o | . | surround (only on vscodevim) | uses cursor position | ysiw" or viwS" adds " to word, ds" deletes ", cs"' replaces " | ||||
s | RetroVim | n,x | . | +surround (followed by a=add, d=delete, r=replace) | followed by textobject/motion (only add) | uses selection (only add) | saiw" or viwsa" adds " to word, sd" deletes ", sr"' replaces " | ||
U | neovim | n,x | U | whichkey repeater (inside neovim repeats :<command> like macros) | <s-space>gjUUU repeats next-git-change (:normal A,jkj end of line comma) | ||||
Y | n,x | yank until end of line | uses selection | v^Y yanks line | |||||
<space><space>p | RetroVim | n,x | . | Paste after (secondary clipboard) | uses selection | viw<space><space>p replaces word with a second clipboard | |||
<space><space>P | RetroVim | n,x | . | Paste before (secondary clipboard) | uses selection | viw<space><space>P replaces word with a second clipboard | |||
<space><space>y | RetroVim | n,x | yank (secondary clipboard) | uses selection | viw<space><space>y yanks word using the second clipboard | ||||
<space><space>Y | RetroVim | n,x | yank until end of line (secondary clipboard) | uses selection | v<space><space>Y yanks until end of line using the second clipboard |
| Key Combination | mode | Description |
|---|---|---|
ctrl+a | n,v | increase number under cursor |
ctrl+c | v | stops selection |
ctrl+d | n,v | scroll down by half page (vscodevim maps to multi-cursor mode) |
ctrl+e | n,v | scroll down by line |
ctrl+i | n | jump to next in :jumps |
ctrl+o | n | jump to previous in :jumps |
ctrl+r | n | redo (u to undo) |
ctrl+s | n,v | replace text (using sed syntax)(only replaces selected region on visual mode)(neovim only) |
ctrl+u | n,v | scroll up by half page |
ctrl+v | n,v | visual block mode |
ctrl+w | n,v | See vscode-window-commands.vim |
ctrl+x | n,v | decrease number under cursor |
ctrl+y | n,v | scroll up by line |
ctrl+/ | n,v | comment line (only inside vscode) |
| Key Combination | Description | compatibility |
|---|---|---|
ctrl+f | search file / doesn't work on cvim | vscode |
/ | search file | neovim |
a | create new file or folder (path/to/file creates 2 folders and 1 file) | vscode/neovim |
d | delete file | vscode/neovim |
gg | focus first file | vscode/neovim |
G | focus last file | vscode/neovim |
h | collapse list | vscode/neovim |
j | move down | vscode/neovim |
k | move up | vscode/neovim |
l or enter | open directory/file passing focus | vscode/neovim |
J | move focus down 10 times in list view | vscode |
K | move focus up 10 times in list view | vscode |
L | open and toggle sidebar visibility | vscode |
o or space | open without passing focus replacing current tab | vscode |
O | open without passing focus in a new tab | vscode |
p | paste file | vscode/neovim |
q | close sidebar visibility | vscode/neovim |
r | rename file | vscode/neovim |
v | open selected file to the side and toggle sidebar visibility | vscode |
V | open selected file to the bottom and toggle sidebar visibility | vscode |
ctrl+v | open selected file to the side and toggle sidebar visibility | neovim |
ctrl+s | open selected file to the bottom and toggle sidebar visibility | neovim |
m | cut/move file | neovim |
x | cut file | vscode |
y | copy file | vscode/neovim |
Down | focus down and preview file | vscode/neovim |
Up | focus up and preview file | vscode/neovim |
<unmapped letter> | find (by first <unmapped letter> of file/folder) and jump | vscode |
? | show all snacks explorer keymaps | neovim |
| Key Combination | mode | Description | compatibility |
|---|---|---|---|
shift+space | n | show whichkey menu (Windows, Linux, Mac) | vscode |
alt+space | n | show whichkey menu (Linux, Mac) | vscode |
<space> | n | show whichkey menu | neovim |
<space>o | n | view file explorer | vscode/neovim |
/ | n | search (ctrl+p/up/ctrl+n/down search history) | vscode/neovim |
ctrl+\ | n,i | toggle panel (terminal) visibility | vscode/neovim |
escape | n | clear search highlight | vscode/neovim |
shift+escape | n | close any popup window like diff/diagnostic etc | vscode/neovim |
jk | i | enter vim normal mode | vscode/neovim |
alt+h | i,x | enter vim normal mode | vscode/neovim |
alt+o | n,i,x | yazi file manager (selection is open with vscode) | vscode |
alt+c | i | copy | vscode/neovim |
alt+v | i | paste | vscode/neovim |
alt+s | n | go to previous tab | vscode |
alt+f | n | go to next tab | vscode |
left | n | go to previous tab | vscode/neovim |
right | n | go to next tab | vscode/neovim |
shift+h | n | cursorLeft 10 times | vscode/neovim |
shift+j | n | cursorDown 10 times | vscode/neovim |
shift+k | n | cursorUp 10 times | vscode/neovim |
shift+l | n | cursorRigth 10 times | vscode/neovim |
shift+r | n | format and save | vscode/neovim |
shift+q | n | close active tab | vscode/neovim |
ctrl+shift+h or ctrl+shift+j | n | decrease view size of current window or terminal | vscode/neovim |
ctrl+shift+l or ctrl+shift+k | n | increase view size of current window or terminal | vscode/neovim |
ctrl+h | n | navigate to left window | vscode/neovim |
ctrl+j | n | navigate to down window | vscode/neovim |
ctrl+k | n | navigate to up window | vscode/neovim |
ctrl+l | n | navigate to right window | vscode/neovim |
ctrl+alt+left | n,i,x | select left word (on multi cursor) | vscode |
ctrl+alt+right | n,i,x | select right word (on multi cursor) | vscode |
| Key Combination | mode | Description | compatibility |
|---|---|---|---|
ctrl+space | i | toggle suggestion widget | vscode |
ctrl+shift+space | i | toggle suggestion details (when inside widget) | vscode |
ctrl+shift+space | i | toggle parameter hints (when inside parameters) | vscode |
ctrl+space | i | mini.completion show | neovim |
ctrl+y | i | mini.completion acccept | neovim |
ctrl+e | i | mini.completion cancel/hide | neovim |
ctrl+n | i | mini.completion select next | neovim |
ctrl+p | i | mini.completion select prev | neovim |
ctrl+f | i | mini.completion scroll info down | neovim |
ctrl+b | i | mini.completion scroll info up | neovim |
ctrl+d | i | scroll down (when inside suggestion details) | vscode |
ctrl+u | i | scroll up (when inside suggestion details) | vscode |
ctrl+h | i | toggle suggestion focus (when inside widget) | vscode |
ctrl+j | i | select next suggestion | vscode |
ctrl+k | i | select prev suggestion | vscode |
ctrl+l | i | accept selected suggestion | vscode |
ctrl+i | i | prompt to AI (gemini/windsurf/copilot) | vscode |
ctrl+k | i | prompt to AI (cursor) | vscode |
ctrl+. | i | fix error with AI (windsurf/cursor/copilot) | vscode |
alt+] | i | show next AI suggestion | vscode/neovim |
alt+[ | i | show previous AI suggestion | vscode/neovim |
alt+j | i | AI suggestion accept next word | vscode/neovim |
alt+k | i | AI suggestion accept next line | vscode/neovim |
alt+l | i | accept AI/NES suggestion (TRAE/AMP/gemini/windsurf/cursor/copilot) | vscode/neovim |
alt+; | i | trigger Next-Edit-Suggestion from AI (alt+l to accept) | vscode |
alt+; | i | accept Next-Edit-Suggestion from AI | neovim |
escape / alt+' | i | cancel Next-Edit-Suggestion from AI | vscode/neovim |
tab | i | go to next snippet stop or next suggestion | vscode |
shift+tab | i | go to prev snippet stop or prev suggestion | vscode |
alt+n | i | go to next snippet stop | vscode/neovim |
alt+p | i | go to prev snippet stop | vscode/neovim |
alt+. | i | expand snippet | neovim |
ctrl+c | i | exit snippet session | neovim |
| Key Combination | Description |
|---|---|
alt+y | send sequence to open yazi |
alt+0 | switch to last tab |
alt+1...9 | switch to tab 1...9 |
alt+a | Scroll terminal down by page |
alt+q | Scroll terminal up by page |
alt+d | Scroll terminal down |
alt+e | Scroll terminal up |
alt+shift+d | Scroll terminal to next command |
alt+shift+e | Scroll terminal to previous command |
alt+t | Scroll terminal to top |
alt+g | Scroll terminal to bottom |
alt+s | Switch to previous tab |
alt+f | Switch to next tab |
alt+shift+s | move tab backward (vscode move to last tab) |
alt+shift+f | move tab forward (vscode move to last tab) |
alt+c | copy |
alt+v | paste |
ctrl+\ | toggle panel (terminal) visibility |
ctrl+alt+h | split horizontal |
ctrl+alt+v | split vertical |
ctrl+shift+left | resize window left |
ctrl+shift+right | resize window right |
ctrl+shift+up | resize window up |
ctrl+shift+down | resize window down |
ctrl+left | focus left |
ctrl+right | focus rigth |
ctrl+up | focus up |
ctrl+down | focus down |
ctrl+t | new tab |
ctrl+w | close tab |
ctrl+shift+t | move panel to new tab |
ctrl+shift+w | move panel to new window |
ctrl+shift+n | new window |
shift+space | tmux-copy-mode-like |
ctrl+shift+f | find text |
ctrl+plus | zoom in |
ctrl+minus | zoom out |
| keymap | description |
|---|---|
<tab> | show (dash/path) options or complete path |
<tab><tab> | enter completion menu |
<esc><esc> | tmux-copy-mode-like / normal-mode (inside neovim terminal) |
nvim<enter> | open retronvim's neovim IDE (<space> to open whichkey) |
y<enter> | open yazi (changes directory on exit) |
alt+o or <esc>o | open yazi (even while writing commands) |
alt+h or <esc> | enter vim-mode |
alt+l | complete inline/ghost suggestion |
alt+j | prev shell history and enter vim-mode |
alt+k | next shell history and enter vim-mode |
Up | prev shell history |
Down | next shell history |
ctrl+r | search history with fzf |
ctrl+l | clear screen |
ctrl+alt+l | clear screen (inside neovim terminal or vscode terminal) |
ctrl+d | exit signal |
ctrl+c | cancel signal |
layer qwerty
@grl 1 2 3 4 5 6 7 8 9 0 - = @bsp
tab q w @e r t y u i o p [ ] ret
@cap a @s @d f g @h @j @k @l @; ' \
lsft ret z x c v b n m , . / rsft
lctl lmet @alt @spc @sft rmet rctl
layer touchcursor (press and hold space to enter the layer)
_ f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 _
_ @W↑ del @w↑ @clr @w🡠 @m🡠 @m↓ @m↑ @m🡪 _ _ _ _
_ @W↓ @bsp @w↓ spc @w🡪 @🡠 @↓ @↑ @🡪 @yaz _ _
_ caps @¿ @ñ mmid mlft mrgt pgup home end pgdn _ _
_ _ _ _ _ _ _
| key | description | example / keymap |
|---|---|---|
| @grl | tap: backtick/grave, hold and press 1 = qwerty layer, hold and press 2 = dvorak layer | `+2 = dvorak |
| @cap | tap for escape, hold for LeftCtrl | cap+l = ctrl+l |
| @sft | tap for backspace, hold for LeftShift | RAlt+l = shift+l |
| @alt | tap for middle click, hold for LeftAlt | LAlt+l = LAlt+l |
| @spc | tap for space, hold for touchcursor layer, release for qwerty layer | space+jj = DownArrow + DownArrow |
| @; | tap for semicolon, hold for ctrl | ;+click = OpenInNewTab (chrome) |
| @bsp | backspace key | space+s |
| @clr | clear screen on any shell | space+r |
| @w🡠 | mouse scrolling left | space+t |
| @w🡪 | mouse scrolling right | space+g |
| @w↑ | mouse scrolling up | space+e |
| @w↓ | mouse scrolling down | space+d |
| @W↑ | mouse fast scrolling up | space+q |
| @W↓ | mouse fast scrolling down | space+a |
| @m🡠 | mouse cursor left | space+y |
| @m↓ | mouse cursor down | space+u |
| @m↑ | mouse cursor up | space+i |
| @m🡪 | mouse cursor right | space+p |
| mmid | mouse middle click | space+c |
| mlft | mouse left click | space+v |
| mrgt | mouse right click | space+b |
| del | delete key | space+w |
| spc | space key | space+f |
| @🡠 | left arrow key | space+h |
| @↓ | down arrow key | space+j |
| @↑ | up arrow key | space+k |
| @🡪 | right arrow key | space+l |
| @yaz | open yazi and cd on exit | space+; |
| caps | toggles capslock | space+c |
| @¿ | unicode ¿ | space+v |
| @ñ | unicode ñ | space+b |
| home | home key | space+m |
| end | end key | space+, |
| pgup | pageup key | space+n |
| pgdn | pagedown key | space+. |
RECOMENDED: On Windows 10/11 to allow creations of symlinks (npm creates them) you need to enable
Developer ModeGo toSettings>System>For Developers>Developer Mode>On
RetroNvim installs
cvima vscodevim fork with flash.nvim support andwhichkeya menu for keymaps vscode extensions as optional dependenciesTouchcursor Keyboard Layoutonmacosrequireszb install karabinerteraxonarchlinuxrequirespacman -S webkit2gtk-4.1teraxondebianrequiresapt install webkit2gtk-4.1-devteraxonlinuxrequireschsh --shell /bin/zsh(sets zsh as default shell)teraxrequires the settingFont family: FiraCode Nerd Fontfor icons support (pixi exec --channel retronvim --with font-fira-code-nerd-font -- firacode-nerdfont-installerto install firacode font)
Manual Install
Linux/MacOS:
sh <(curl https://pkgx.sh) pixi global install retronvim -c retronvim -c conda-forge --with pixi git clone https://github.com/yeferyv/retronvim cd retronvim npx vsce package --out retronvim.vsix code --install-extension retronvim.vsix
Windows 10/11:
winget install prefix-dev.pixi visualstudiocode ###### then relaunch terminal pixi global install nodejs retronvim -c retronvim -c conda-forge git clone https://github.com/yeferyv/retronvim cd retronvim npx vsce package --out retronvim.vsix code --install-extension retronvim.vsix
Install RetroNvim on any terminal or shell
Powershell (windows):
irm pixi.sh/install.ps1 | iex pixi g install retronvim -c retronvim -c conda-forgeSSH/Bash/Zsh (linux/macos):
curl -L pixi.sh/install.sh | sh pixi g install retrovim -c retronvim -c conda-forgenpm + any package manager:
# brew install bat eza font-fira-code-nerd-font fzf git kanata lazygit nvim@0.12 ripgrep starship yazi@26.8.15 zsh zsh-patina 7zip pixi# pixi g install bat eza font-fira-code-nerd-font fzf git kanata lazygit nvim=0.12 ripgrep starship yazi=26.8.15 zsh zsh-patina 7zip -c retronvim -c conda-forge -e retronvim npm install -g retronvim
pip + any package manager:
# brew install bat eza font-fira-code-nerd-font fzf git kanata lazygit nvim@0.12 ripgrep starship yazi@26.8.15 zsh zsh-patina 7zip pixi# pixi g install bat eza font-fira-code-nerd-font fzf git kanata lazygit nvim=0.12 ripgrep starship yazi=26.8.15 zsh zsh-patina 7zip -c retronvim -c conda-forge -e retronvim pip install retronvim
Install RetroVim (for vscode-neovim support)
pixi g uninstall retronvim pixi g install retrovim -c retronvim -c conda-forge code --uninstall-extension cuixiaorui.cvim code --install-extension asvetliakov.vscode-neovim
VSCode Marketplace
RetroNvim.conda is shipped with
Retronvim comes with an installer for frameworks (LSP + formatters + snippets + binaries + cheatsheets) for:
angularansibleAWSc/c++c#dockerdjangoexpofastapiflaskgographqlkotlinkuberneteslaravelnextjsprismascikit-learnspringbootsupabaserustterraformvue
RetroVim/nvim searches for vscode extensions's snippets in
~/.*/extensions/*/snippets/*code-snippets(alphabetically first~/.antigravityotherwise~/.cursorotherwise~/.vscodeotherwise~/.windsurf) and automatically adds them tomini.completion- if you see:
No contains a valid JSON objectthen to fix it use biome linter usually it is extras commas or comments - if you see:
File is absent or not readablethen delete the file to makemini.snippetwork
- if you see:
Retronvim comes with bat's base16 syntax highlighting generated by
npx yo code --extensionType colorthemeand a editor theme generated using https://themes.vscode.onehttps://marketplace.visualstudio.com/items?itemName=YeferYV.retronvim
remove
vscode-neovim.neovimExecutablePaths.linuxvscode-neovim.neovimExecutablePaths.win32vscode-neovim.neovimExecutablePaths.darwinfromsettings.jsonand relaunch vscodeopen vscode command palette and type:
Output: Show Output Channels>vscode-neovim logs
zerobrew(preinstalled) for macos and linuxwhichkey > +Install Frameworks > install scoopfor windowspixi(preinstalled) for macos, linux, windows
devhints.io/vim most used vim keys
viemu.com vim keys from A-Z
vscode with embedded neovim youtube tutorial most of the keybindings are similar to RetroNvim
treesitter text-objects demo youtube tutorial most of the keybindings are similar to RetroNvim
treesitter text-objects extended youtube tutorial most of the keybindings are similar to RetroNvim
text-objects from A-Z youtube tutorial most of the keybindings are similar to RetroNvim
motion-operators from A-Z youtube tutorial most of the keybindings are similar to RetroNvim
yeferyv/dotfiles retronvim + hyprland setup
yeferyv/RetroVim neovim IDE using 01 plugins (with copilot, agents, text-objects, whichkey ...)
binvim neovim IDE written in rust (with copilot, agents, text-objects, whichkey ...)
terax agentic terminal + neovim-like IDE
lunarkeymap comes with vscodevim extension which has some text objects + whichkey with lunarvim-like keymaps