npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

retronvim

v0.4.10

Published

minimal whichkey, lazyvim, terax, yazi, zsh and kanata setup

Readme

vscode extension with minimal whichkey, lazyvim, terax, yazi, zsh and kanata setup


 Install  Keyboard-Layout  Wiki  Dependencies 


  1. Neovim keymaps
  2. Keybindings.json
  3. Terminal
  4. If Touchcursor Keyboard Layout Started
  5. Installation
  6. Vim Cheatsheets / Tutorials
  7. 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 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+. |


Installation

  • RECOMENDED: On Windows 10/11 to allow creations of symlinks (npm creates them) you need to enable Developer Mode Go to Settings > System > For Developers > Developer Mode > On

  • RetroNvim installs cvim a vscodevim fork with flash.nvim support and whichkey a menu for keymaps vscode extensions as optional dependencies

  • Touchcursor Keyboard Layout on macos requires zb install karabiner

  • terax on archlinux requires pacman -S webkit2gtk-4.1

  • terax on debian requires apt install webkit2gtk-4.1-dev

  • terax on linux requires chsh --shell /bin/zsh (sets zsh as default shell)

  • terax requires the setting Font family: FiraCode Nerd Font for icons support (pixi exec --channel retronvim --with font-fira-code-nerd-font -- firacode-nerdfont-installer to 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-forge
  • SSH/Bash/Zsh (linux/macos):

    curl -L pixi.sh/install.sh | sh
    pixi g install retrovim -c retronvim -c conda-forge
  • npm + 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 retronvim
  • pip + 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