retronvim
v0.4.10
Published
minimal whichkey, lazyvim, terax, yazi, zsh and kanata setup
Maintainers
Readme
vscode extension with minimal whichkey, lazyvim, terax, yazi, zsh and kanata setup
Install Keyboard-Layout Wiki Dependencies
- Neovim keymaps
- Keybindings.json
- Terminal
- If Touchcursor Keyboard Layout Started
- Installation
- Vim Cheatsheets / Tutorials
- Related projects
Neovim text object that starts with a/i
| 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 |
Neovim text-object/motions/operators that starts with g
| 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 |
Native neovim ctrl keys
| 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) |
File Explorer keymaps
| 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 |
Editor keymaps (keybindings.json)
| 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 |
Suggestion keymaps
| 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 |
vscode terminal keymaps
| 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 |
zsh keymaps
| 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 |
If Touchcursor Keyboard Layout Started
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 rctllayer 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+. |
Installation
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>OnRetroNvim 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.vsixWindows 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 [email protected] ripgrep starship [email protected] 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 retronvimpip + any package manager:
# brew install bat eza font-fira-code-nerd-font fzf git kanata lazygit [email protected] ripgrep starship [email protected] 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
