{"id":15273416,"url":"https://github.com/leerob/vim-for-react-devs","last_synced_at":"2025-04-04T17:04:09.732Z","repository":{"id":257805272,"uuid":"861087277","full_name":"leerob/vim-for-react-devs","owner":"leerob","description":"A bite-sized course to get you quickly productive with Vim.","archived":false,"fork":false,"pushed_at":"2024-10-07T19:39:38.000Z","size":85,"stargazers_count":820,"open_issues_count":3,"forks_count":38,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T16:06:06.365Z","etag":null,"topics":["reactjs","vim"],"latest_commit_sha":null,"homepage":"https://vimforreactdevs.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leerob.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-22T00:55:20.000Z","updated_at":"2025-03-28T13:51:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"42c5eda6-aaa6-429a-a70a-88cb8cba77d5","html_url":"https://github.com/leerob/vim-for-react-devs","commit_stats":null,"previous_names":["leerob/vim-for-react-devs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leerob%2Fvim-for-react-devs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leerob%2Fvim-for-react-devs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leerob%2Fvim-for-react-devs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leerob%2Fvim-for-react-devs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leerob","download_url":"https://codeload.github.com/leerob/vim-for-react-devs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217174,"owners_count":20903008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["reactjs","vim"],"created_at":"2024-09-30T10:01:03.187Z","updated_at":"2025-04-04T17:04:09.711Z","avatar_url":"https://github.com/leerob.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Vim for React Developers\n\nby [leerob](https://leerob.com)\n\nThis mini-course is designed to help **React developers** learn **Vim** commands and apply them to real-world scenarios by fixing and editing React code. The course focuses on the most helpful Vim commands when working with React and JavaScript.\n\n**https://vimforreactdevs.com**\n\n## Prerequisites\n\nBefore starting this course, you should have neovim installed and configured:\n\n1. Install Neovim and dependencies\n   - macOS: `brew install nvim fzf ripgrep`\n   - Windows: `choco install -y neovim git ripgrep wget fd unzip gzip mingw make`\n2. Follow [this Neovim quickstart](https://github.com/nvim-lua/kickstart.nvim)\n\nThat's it! Download the [course file](./public/course.tsx) and start neovim with `nvim course.tsx`.\n\n## Course Content\n\nView the completed [course file](./public/course.tsx).\n\n## Cheat Sheet\n\n### Modes\n\n- Normal Mode: Default mode for navigation and commands (`Esc`)\n- Insert Mode: `i`, `I`, `a`, `A` (exit with `Esc`)\n- Visual Mode: `v` (character), `V` (line), `Ctrl+v` (block)\n- Command Mode: `:`\n\n### Navigation\n\n- Basic: `h` (left), `j` (down), `k` (up), `l` (right)\n- Words: `w` (next word), `b` (previous word), `e` (end of word)\n- Lines: `0` (start), `^` (first non-whitespace), `$` (end)\n- Scrolling: `Ctrl+d` (down), `Ctrl+u` (up)\n- File: `gg` (top), `G` (bottom)\n\n### Actions\n\n- `d`: Delete\n- `c`: Change (delete and enter Insert Mode)\n- `y`: Yank (copy)\n- `v`: Visual selection\n\n### Motions\n\n- `i`: Inside\n- `a`: Around\n\n### Objects\n\n- `w`: Word\n- `p`: Paragraph\n- `t`: Tag\n- `q`: Quote (or `'`, `\"`, ```)\n- `b`: Bracket (or `(`, `{`, `[`, `\u003c`)\n\n### Examples\n\n- `dw`: Delete Word\n- `cw`: Change Word\n- `yy`: Copy Entire Line\n- `y$`: Copy To End Of Line\n- `diq`: Delete Inside Quotes\n- `ca{`: Change Around Braces\n- `ci(`: Change Inside Parenthesis\n- `yap`: Yank Paragraph\n- `dab`: Delete Around Brackets\n- `yiw`: Yank Inside Word\n- `ciw`: Change Inside Word\n- `vit`: Visual Selection Inside Tag\n- `ct\"`: Change To Next `\"` (leaving the `\"`)\n- `df|`: Delete to Next `|` (including the `|`)\n\n### Miscellaneous\n\n- `.`: Repeat Last Command\n- `gd`: Go To Definition\n- `f\u003cchar\u003e`: Find Character\n- `t\u003cchar\u003e`: To Character\n- `ZZ`: Save \u0026 Close Vim\n- `u`: Undo\n- `Ctrl+r`: Redo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleerob%2Fvim-for-react-devs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleerob%2Fvim-for-react-devs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleerob%2Fvim-for-react-devs/lists"}