demo.mp4
Neovim text objects + LSP whichkey + touchcursor keyboard layout + minimal zsh/yazi setup (zsh.exe supported) (yazi comes with a neovim IDE)
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 | |
ie , ae |
vscode-neovim | . |
line | from start to end of line without beginning whitespaces (line wise) | outer includes begining whitespaces | |
if , af |
vscode-neovim | . |
yes | _function_call | like function args but only when a function is called |
outer includes the function called |
ih , ah |
vscode-neovim | . |
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 |
vscode-neovim | . |
indent | surrounding lines with same or higher indentation | outer includes line above and below | |
ik , ak |
vscode-neovim | . |
yes | _key | key of key-value pair, or left side of a assignment | outer includes spaces |
il , al |
vscode-neovim | . |
yes | +last | go to last mini.ai text-object (which start with _ ) |
requires i /a example vilk |
im , am |
vscode-neovim | . |
yes | _number | numbers, similar to <C-a> |
inner: only pure digits, outer: number including minus sign and decimal point |
in , an |
vscode-neovim | . |
yes | +next | go to Next mini.ai text-object (which start with _ ) |
requires i /a example viNk |
io , ao |
vscode-neovim | . |
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 |
vscode-neovim | . |
_subword | like iw , but treating - , _ , and . as word delimiters and only part of camelCase |
outer includes trailing _ ,- , or space |
|
iv , av |
vscode-neovim | . |
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 |
vscode-neovim | . |
yes | _Hex | hexadecimal number or color | outer includes hash # |
iy , ay |
vscode-neovim | . |
same_indent | surrounding lines with only same indent (delimited by blankspaces or commented lines) | outer includes blankspaces | |
i? , a? |
vscode-neovim | . |
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> |
vscode-neovim | . |
yes | <punctuation> |
inside <punctuation><punctuation> |
outer includes surroundings |
text-object keymap | requires | mode | repeat action key | repeat jump key | text-object description | normal mode | operating-pending mode | visual mode | examples in normal mode |
---|---|---|---|---|---|---|---|---|---|
g< /g> |
vscode-neovim | n ,o ,x |
. |
prev/next find | text-object not required | finds and jumps | uses selection | cg>??? replaces last search with ??? forwardly |
|
g; /g, |
n |
go backward/forward in :changes |
jumps | g; go to last change |
|||||
g. |
vscode-neovim | n ,o ,x |
jump to last change | jumps | won't jump | uses selection | vg. selects from cursor position until last change |
||
ga |
vscode-neovim | n ,x |
+align | followed by textobject/motion | uses selected region | gaip= or vipga= aligns a paragraph by = |
|||
gb |
vscode-neovim | n ,x |
. |
+blackhole register | followed by textobject/motion | deletes selection | gbip or vipgb deletes a paragraph without copying |
||
gB |
vscode-neovim | 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 |
vscode-neovim | 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 |
vscode-neovim | x |
git diff/hunk (vscode selects from cursor position to end of diff) | won't jump | reselects | vgh 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 |
vscode-neovim | n ,x |
+multiply (duplicate text) operator | won't jump | uses selection | gnap 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 |
vscode-neovim | n ,o ,x |
. |
; forward , backward |
+prev/+next textobj (only textobj with _ prefix) |
finds and jumps | followed by textobject | uses selection | vgniq selects from cursor position until next quotation |
gpc / gnc |
vscode-neovim | n ,o ,x |
. |
; forward , backward |
previous/next comment | finds and jumps | jumps | uses selection | vgnc selects from cursor position until next comment |
gpd / gnd |
vscode-neovim | n ,o ,x |
. |
; forward , backward |
previous/next diagnostic | finds and jumps | jumps | uses selection | vgnd selects from cursor position until next diagnostic |
gpf / gnf |
vscode-neovim | n ,o ,x |
. |
; forward , backward |
previous/next fold (only inside neovim) | finds and jumps | jumps | uses selection | vgnf selects from cursor position until next fold |
gpH / gnH |
vscode-neovim | n ,o ,x |
. |
; forward , backward |
previous/next git hunk | finds and jumps | jumps | uses selection | vgnH selects from cursor position until next git hunk |
gpr / gnr |
vscode-neovim | n ,o ,x |
. |
; forward , backward |
previous/next reference (only inside vscode) | finds and jumps | jumps | uses selection | vgnr selects from cursor position until next reference |
gq |
n ,x |
. |
+format selection/comments 80chars (LSP overrides it) | requires a textobject | applies to selection | gqip or vipgq formats a paragraph |
|||
gr |
vscode-neovim | n ,x |
. |
+replace (with register) operator | followed by text-object/motion | applies to selection | griw or viwgr replaces word with register (yanked text) |
||
gs |
vscode-neovim | n ,x |
. |
+sort Operator | followed by text-object/motion | uses selection | gsip or vipgs sorts a paragraph |
||
gS |
vscode-neovim | n ,x |
. |
split/join arguments | toggles inside {} ,[] ,() |
followed by operator | vipgS joins selected lines in one line |
||
gt /gT |
vscode-neovim | n ,x |
. |
; ending , beginning |
+go to end/start of textobj | followed by text-object | selects form cursor position | vgtiq selects until end of quotation |
|
gu /gU |
n ,x |
. |
+to lowercase/uppercase | requires a text-object | applies to selection | guip or vipgu lowercases a paragraph |
|||
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 |
vscode-neovim | 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 |
vscode-neovim | n |
. |
redo register (dot to paste forward/bacward) | paste | gy..... paste deleted lines by history |
|||
g- /g+ |
vscode-neovim | n ,x |
. |
decrement/increment number | selects number under cursor | uses selected number | g+.. or 3g+ increments by 3 |
||
g<Up> /g<Down> |
vscode-neovim | 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 |
|||
f |
cvim | n ,o ,x |
. |
search with labels like flash.nvim | jumps | uses selection | f??? then press the label |
||
f /F |
n ,o ,x |
. |
; forward , backward |
move to next/prev char (f to repeat_jump on vscode-neovim) |
jumps | uses selection | df, deletes until a next , |
||
t /T |
n ,o ,x |
. |
; forward , backward |
move before next/prev char (f to repeat_jump on 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 |
vscode-neovim | 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 |
n ,x |
U |
whichkey.repeatMostRecent (inside neovim repeats :<command> ) |
<s-space>gjUUUUU repeats go to next git-change |
|||||
Y |
n ,x |
yank until end of line | uses selection | v^Y yanks line |
|||||
<space><space>p |
vscode-neovim | n ,x |
. |
Paste after (secondary clipboard) | uses selection | viw<space><space>p replaces word with a second clipboard |
|||
<space><space>P |
vscode-neovim | n ,x |
. |
Paste before (secondary clipboard) | uses selection | viw<space><space>P replaces word with a second clipboard |
|||
<space><space>y |
vscode-neovim | n ,x |
yank (secondary clipboard) | uses selection | viw<space><space>y yanks word using the second clipboard |
||||
<space><space>Y |
vscode-neovim | n ,x |
yank until end of line (secondary clipboard) | uses selection | v<space><space>Y yanks until end of line using the second clipboard |
||||
<space><space>j |
vscode-neovim | n ,x ,o |
; forward , backward |
prev ColumnMove | jumps | uses selection | v<space><space>j selects until start of column |
||
<space><space>k |
vscode-neovim | n ,x ,o |
; forward , backward |
next ColumnMove | jumps | uses selection | v<space><space>k selects until end of coumn |
||
<space>o |
n |
focus file explorer | jumps | <space>o focus explorer when normal mode |
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 |
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 |
---|---|
a |
Create new file or folder (path/to/file creates 2 folders and 1 file) |
d |
delete file |
gg |
focus first file |
G |
focus last file |
h |
Collapse list |
j |
Move down |
k |
Move up |
l or enter |
open directory/file passing focus |
o or space |
open without passing focus replacing current tab |
O |
open without passing focus in a new tab |
p |
paste file |
q |
close sidebar visibility |
r |
Rename file |
v |
Open selected file to the side and toggle sidebar visibility |
V |
Open selected file to the bottom and toggle sidebar visibility |
x |
cut file |
y |
copy file |
/ |
search |
Down |
Focus down and preview file |
Up |
Focus up and preview file |
shift+j |
Move focus down 10 times in list view |
shift+k |
Move focus up 10 times in list view |
shift+l |
Open and toggle sidebar visibility |
<unmapped letter> |
find (by first <unmapped letter> of file/folder) and jump |
Key Combination | mode | Description |
---|---|---|
ctrl+\ |
n ,i |
Toggle panel (terminal) visibility |
escape |
n |
clear search highlight |
shift+space |
n |
Show whichkey menu (Windows, Linux, Mac) |
alt+space |
n |
Show whichkey menu (Linux, Mac) |
alt+c |
i |
Copy |
alt+v |
i |
Paste |
jk |
i |
enter vim normal mode |
alt+h |
i ,x |
enter vim normal mode |
alt+h or shift+h |
n |
cursorLeft 10 times |
alt+j or shift+j |
n |
cursorDown 10 times |
alt+k or shift+k |
n |
cursorUp 10 times |
alt+l or shift+l |
n |
cursorRigth 10 times |
alt+v |
n |
Type V |
alt+s or left |
n |
Go to previous editor |
alt+f or right |
n |
Go to next editor |
alt+left or alt+down |
n |
Decrease view size of current window or terminal |
alt+right or alt+up |
n |
Increase view size of current window or terminal |
ctrl+h |
n |
Navigate to left window |
ctrl+j |
n |
Navigate to down window |
ctrl+k |
n |
Navigate to up window |
ctrl+l |
n |
Navigate to right window |
shift+q |
n |
Close active editor |
shift+r |
n |
Format and save |
ctrl+alt+left |
n ,i ,x |
select left word (on multi cursor) |
ctrl+alt+right |
n ,i ,x |
select right word (on multi cursor) |
<ctr+x><ctrl+o> |
i |
to expand emmet-ls (neovim only) |
Key Combination | mode | Description |
---|---|---|
ctrl+space |
i |
Toggle suggestion widget |
ctrl+shift+space |
i |
Toggle suggestion details (when inside widget) |
ctrl+shift+space |
i |
Toggle parameter hints (when inside parameters) |
ctrl+h |
i |
Toggle suggestion focus (when inside widget) |
ctrl+d |
i |
Select next page (when inside suggestion details) |
ctrl+u |
i |
Select prev page (when inside suggestion details) |
ctrl+j |
i |
Select next suggestion |
ctrl+k |
i |
Select prev suggestion |
ctrl+l |
i |
Accept selected suggestion |
tab |
i |
go to next snippet stop or next suggestion |
shift+tab |
i |
go to prev snippet stop or prev suggestion |
alt+] |
i |
Show next inline suggestion |
alt+[ |
i |
Show previous inline suggestion |
alt+j |
i |
inline suggestion accept next word |
alt+k |
i |
inline suggestion accept next line |
alt+l |
i |
Commit inline suggestion |
alt+. |
i |
expand snippet (neovim only) |
alt+; |
i |
next snippet stop (neovim only) |
alt+, |
i |
previous snippet stop (neovim only) |
ctrl+c |
i |
exit snippet session (neovim only) |
Key Combination | Description |
---|---|
alt+c |
Copy selection in terminal |
alt+v |
Paste in terminal |
alt+y |
send sequence to open yazi |
alt+shift+d |
Scroll terminal to next command |
alt+shift+e |
Scroll terminal to previous command |
alt+e |
Scroll terminal up |
alt+d |
Scroll terminal down |
alt+q |
Scroll terminal up by page |
alt+a |
Scroll terminal down by page |
alt+t |
Scroll terminal to top |
alt+g |
Scroll terminal to bottom |
alt+ctrl+r |
select from shell history |
Up |
prev shell history (shell builtin) |
Down |
next shell history (shell builtin) |
ctrl+d |
exit signal (shell builtin) |
ctrl+c |
cancel signal (shell builtin) |
ctrl+r |
search shell history (shell builtin) |
ctrl+backspace |
delete word (shell builtin) |
Home |
jump to start of line (powershelll and bash only) |
End |
jump to end of line (powershelll and bash only) |
ctrl+left |
jump backward word (powershelll and bash only) |
ctrl+right |
jump forward word (powershelll and bash only) |
ctrl+alt+shift+? |
show shortcuts (powershelll only) |
bind -P |
show shortcuts (bash only, emacs keybindings by default) |
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) |
vi<enter> |
open retronvim's neovim IDE (<space> to open whichkey) |
y<enter> |
open yazi (changes directory on exit) |
alt+o |
open yazi (even while writing commands) |
alt+h or <esc> |
enter vim-mode |
alt+j |
previous history and enter vim-mode |
alt+k |
next history and enter vim-mode |
alt+l |
complete suggestion and enter vim-mode |
ctrl+r |
search history with fzf |
ctrl+l |
clear screen |
ctrl+alt+l |
clear screen (inside neovim terminal) |
layer qwerty
@grl 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e r t y u i o p [ ] \
@cap a s d f g h j k l ; ' ret
lsft 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 _
_ @¿ _ _ _ @m🡠 @M↓ @m↓ @m↑ @M↑ @m🡪 _ _ _
_ del spc bspc @clr _ @🡠 @↓ @↑ @🡪 @yaz _ _
_ @ñ _ caps _ _ 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 |
@yaz | open yazi_cd on any shell | space+; |
@clr | clear screen on any shell | space+f |
@¿ | unicode ¿ | space+q |
@ñ | unicode ñ | space+z |
@m🡠 | mouse scrolling left | space+t |
@m🡪 | mouse scrolling right | space+p |
@m↑ | mouse scrolling up | space+i |
@m↓ | mouse scrolling down | space+u |
@M↑ | mouse fast scrolling up | space+y |
@M↓ | mouse fast scrolling down | space+p |
spc | space key | space+s |
bspc | backspace key | space+d |
home | home key | space+m |
end | end key | space+, |
pgup | pageup key | space+n |
pgdn | pagedown key | space+. |
@🡠 | left arrow key | space+h |
@↓ | down arrow key | space+j |
@↑ | up arrow key | space+k |
@🡪 | right arrow key | space+l |
caps | toggles capslock | space+c |
-
On Windows 10/11 before installing
retronvim
extension you need to enableDeveloper Mode
to be able to create the~/.vscode/extensions/yeferyv.retronvim
symlink. Go toSettings
>System
>For Developers
>Developer Mode
>On
and relaunch vscode -
RetroNvim installs
cvim
a vscodevim fork with flash.nvim support andwhichkey
a menu for keymaps vscode extensions as optional dependencies -
some text-objects requires install
vscode-neovim
(tested on vscode-neovim version v1.18.17, neovim version v0.11.0 and retronvim version v0.3.0, future versions may be incompatible with retronvim's init.lua file) and uninstall/disablecvim
extension, you may need to relaunch vscode, alternatively usenvim -u ~/.vscode/extensions/yeferyv.retronvim/nvim/init.lua
a neovim IDE used insideyazi
Manual Install
-
Linux/MacOS:
curl -L pixi.sh/install.sh | bash source ~/.zshrc pixi global install git nodejs nvim yazi git clone --recursive https://github.com/yeferyv/retronvim cd retronvim npx vsce package --out retronvim.vsix code --install-extension retronvim.vsix
Windows 10/11:
winget install git.git openjs.nodejs neovim.neovim sxyazi.yazi microsoft.vcredist.2015+.x64 # microsoft.visualstudiocode # then relaunch terminal git clone --recursive https://github.com/yeferyv/retronvim cd retronvim npx vsce package --out retronvim.vsix code --install-extension retronvim.vsix
VSCode Marketplace
-
RetroNvim extension is shipped with
neovim
,yazi
andkanata
binaries andmini.nvim
andsnacks.nvim
as git-submodules -
https://marketplace.visualstudio.com/items?itemName=YeferYV.retronvim
- remove the
~/.vscode/extensions/yeferyv.retronvim
symlink and relaunch vscode - remove
vscode-neovim.neovimExecutablePaths.linux
vscode-neovim.neovimExecutablePaths.win32
vscode-neovim.neovimExecutablePaths.darwin
fromsettings.json
and relaunch vscode - remove
terminal.integrated.env.linux
terminal.integrated.env.osx
terminal.integrated.env.windows
fromsettings.json
and relaunch vscode - open vscode command palette and type:
Output: Show Output Channels
>vscode-neovim logs
- To install terminal dependencies after installing retronvim extension, open
whichkey
>+Install Dependencies
>install <your package manager>
><your package manager> install lazygit startship zsh
> relaunch vscode
- 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 the keybindings are similar to RetroNvim
- treesitter text-objects extended youtube tutorial the keybindings are similar to RetroNvim
- text-objects from A-Z youtube tutorial the keybindings are similar to RetroNvim
- motion-operators from A-Z youtube tutorial the keybindings are the same as to RetroNvim
- yeferyv/archrice (RetroNvim's linux distro) comes with extended keybindings for bspwm
- yeferyv/sixelrice (terminal version of RetroNvim) neovim with text objects, based on lazyvim
- lunarkeymap comes with vscodevim extension which has some text objects + whichkey with lunarvim-like keymaps
- vspacecode comes with vscodevim extension which has some text objects + whichkey with spacemacs-like keymaps