Tutor :Tutor launch tutor Verb, count, motion count + verb + count + motion navigation is the default verb, can be omitted Motions w jump forward to the start of a word e jump forward to the end of a word b jump back to the start of a word ge jump back to the end of of a word $ jump forward to the end of a line 0 jump backwards to the start of a line ^ same as 0 , but does not take white spaces into account W E B gE works the same, but splits words by white space, while lowercased versions split works also with dot, paren, quote Count + motion = Repeat motion 3w jump forward to the end of a word 3 times Insert mode (text) a put caret after cursor A put caret at the end of the line i put caret before cursor I put caret at the start of the line o add line below and put caret O add line above and put caret ge go to the last insertion point Esc normal mode (navigate and manipulate text) v visual mode - select Visual mode (selection) v visual mode Command mode : command mode :q! exit without save Open project in NeoVim Navigate to you project in terminal with cd Type nvim Save :w write :w TEST.txt write under TEST name :write TEST.txt same v motion :w FILENAME saves the Visually selected lines in file FILENAME. Exit :q quite :wq write & quit :x write & quit :q! quit without save Navigate in list Tab move down in list Ctrl+y accept Arrow Down accept Undo, Redo u undo the last command Ctrl+u undo in Insert mode U undo all for the line ctrl r redo Cursor movement j up k down h left l right Jump to line 15G jumps to line #15 :15 jumps to line #15 gg jumps to first line G jumps to last line Ctrl+o jump back in history Ctrl+i jump forward in history Ctrl+g show cursor position + file name Jump to matching bracket Place cursor on bracket % jumps to closing bracket Find f puts you in Find mode type a char and cursor jumps to the next typed char f jumps to the next x 3fx jumps to the 3rd x from you F same, but backwards To t same as Find mode, but puts cursor before the found char t searches for next char Seek s seek mode you may jump to any visible text simply by typing part of it and press green label character Scroll Ctrl+d/u scroll down/up 50% Ctrl+f/b scroll down/up 100% 5 Ctrl+f scroll down 5 screens Ctrl+e/y scroll down/up 1 line z t/b scroll up/down to move active line almost to the top/bottom zz scroll to move active line to the middle Delete (verb) d [number] motion - delete operator dh delete the character to the left of the cursor. dw delete to the beginning of next word d2w delete 2 words de delete to the end of the word db delete to the start of the word d0 delete to the start of the line d$ delete to the end of the line dd delete whole line (shortcut) 2dd delete 2 lines d2fe delete to the second e , including e d2ta delete to the second a dsfoos the label s that pops up when you use Seek mode to seek to foo . Note that Seek mode jumps to the beginning of the word D delete to the end of the line (shortcut) Change (verb) c change deletes and inters into Insert mode same as d + motion + i cw deletes to the end of the word & enters into Insert mode cc changes whole line (shortcut) C changes to the end of the line (shortcut) Delete char (verb) x delete char under cursor 5x delete 5 chars X delete char before cursor Replace char (verb) r go into replace mode of single char, then a to replace with a R go into global replace mode Join lines J join lines merging white spaces gJ join lines keeping white spaces UpperCase & LowerCase ~ inverts case under the cursor gU upper case mode gu lower case mode gUU / guu same, for whole line Paste p paste deleted text after cursor P paste deleted text before cursor Copy y copy highlighted text yw copy to the word's end Copy / Paste Select text in visual mode v y copy highlighted text p paste after cursor or P before Search / phrase search prompt, then Enter ? phrase search prompt in backwards direction n find next N find next in reverse direction Ctrl+o go back to older position Ctrl+i go back to newer position Find and replace :s/old/new/ replaces "old" with "new" occurrence in line :s/old/new/g replaces "old" with "new" all occurrences in line :1,5s/old/new/g replaces "old" with "new" all occurrences in 1...5 lines :%s/old/new/g replaces "old" with "new" in file :%s/old/new/gc replaces "old" with "new" in file with prompt External command :!ls show files :!rm FILENAME remove FILENAME file Read content and paste :r TEST reads content from the file TEST and pastes below the cursor :r !ls reads content from external command and pastes below the cursor Search file Search files in Current Working Directory Current Working Directory (CWD) is the directory where your terminal was in when you typed nvim Space fF files fuzzy search in (CWD) To check where you are, type :pwd (Print Working Directory) To change CWD :cd path/to/directory To change CWD just in one tab :lcd path/to/directory Search files in Root Directory Root Directory is where package.json or tsconfig.json Space Space files fuzzy search in current project Space ff same Root Directory may be confusing, coz they may change silently. Imagine you are in a monorepo with multiple tsconfig.json files and you will have different Current Working Directory depending on which file you are working on. In this case you may want to search relative to CWD Search gotchas Search is case insensitive, until you type a capital letter phrase1 phrase2 - type phrase1 first, get search results, hit Space , type second phrase2 , already visible results will be narrowed by fuzzy search with second phrase, super convenient Alt+s seek mode (may need to enable Alt first iTerm2 → Preferences → Profiles → [your profile] → Keyboard and set Left Option Key to: Esc+ ) Ctrl+j Ctrl+k move down/up in the list Ctrl+h backspace Tab select multiple results Enter confirm selection Esc Esc exit from search mode Explorer Space+e open file explorer at Root Directory Space+E open file explorer at CWD j / k down/up 3j jump down 3 lines Enter expand/collapse folder Backspace go to parent folder Enter expand/collapse folder Tab multiple select Ctrl f/b scroll down/up i jump to search field in Insert mode to search for a specific file Alt+s seek mode during Insert mode s seek mode also covers the explorer window d delete file a add file/folder r rename y / p copy/paste m move file ? being focused on explorer - help window with other useful shortcuts mini.files Go to LazyVim extras by x from the dashboard Useful vim plugin for vscode learn vim plugin for vscode vimtutor terminal app to learn vim on most Unix operating systems cheatsheet NeoVim https://neovim.io/ is Vim-based text editor LazyVim is opinionated popular Neovim setup Font https://www.nerdfonts.com/font-downloads Download FiraCode Nerd Font, unzip, install all fonts Open iTerm2, then Preferences, then Profiles, then Text, pick FiraCode Nerd Font Restart the terminal