{"id":24702950,"url":"https://github.com/richlamdev/vim-cheatsheet","last_synced_at":"2026-03-05T08:31:10.490Z","repository":{"id":140093743,"uuid":"581084324","full_name":"richlamdev/vim-cheatsheet","owner":"richlamdev","description":"VIM Editor Cheatsheet for multi file management / IDE ","archived":false,"fork":false,"pushed_at":"2025-12-13T05:49:12.000Z","size":37,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-14T19:46:25.861Z","etag":null,"topics":["editor","text-editor","vim","vim-editor"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/richlamdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2022-12-22T08:27:13.000Z","updated_at":"2025-12-13T05:49:15.000Z","dependencies_parsed_at":"2023-04-22T04:50:01.469Z","dependency_job_id":"7d5a3806-a6a4-42da-8483-98fad75a7216","html_url":"https://github.com/richlamdev/vim-cheatsheet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/richlamdev/vim-cheatsheet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richlamdev%2Fvim-cheatsheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richlamdev%2Fvim-cheatsheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richlamdev%2Fvim-cheatsheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richlamdev%2Fvim-cheatsheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richlamdev","download_url":"https://codeload.github.com/richlamdev/vim-cheatsheet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richlamdev%2Fvim-cheatsheet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30115913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T08:19:04.902Z","status":"ssl_error","status_checked_at":"2026-03-05T08:17:37.148Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["editor","text-editor","vim","vim-editor"],"created_at":"2025-01-27T05:51:41.986Z","updated_at":"2026-03-05T08:31:10.192Z","avatar_url":"https://github.com/richlamdev.png","language":null,"readme":"# VIM Cheatsheet - Working with multiple files / Programming\n\n### Buffers\n\n    :e[dit] {file}                      - edit {file} in a new buffer\n    :fin[d] {file}                      - search and open {file}\n    :b[uffer]{id}                       - move to buffer using {id}\n    :bn[ext], :bp[rev]                  - go to the next/previous buffer\n    :bf[irst], :bl[ast]                 - go to first/last buffer\n    :bd[elete]                          - delete current/active buffer (close file)\n    :1,10bd[elete]                      - delete buffers from ID 1 to 10\n    :%bd[elete]                         - delete all buffers\n    :ls or :buffers                     - show all buffers\n    :sb{id}                             - open buffer{id} as a horizontal split\n    :vert[ical] sb{id}                  - open buffer{id} as a vertical split\n    :badd {file}                        - add {file} to the buffer list\n    :ball                               - open all buffers in horizonal splits\n    :vert ball                          - open all buffers in vertical splits\n    :bufdo {cmd}                        - execute {cmd} in each buffer in the list. eg: apply macro 'a' to each buffer :bufdo normal @a\n    CTRL-^                              - switch to the alternate buffer. (indicated in buffer list with symbol #)\n    {id}CTRL-^                          - switch to a specific buffer with {id}.\n\n### Arguments\n\n    :ar[gs]                             - display the arglist\n    :arga[dd] {file(s)}                 - add {file(s)} to the arglist\n    :ar[gs] **/*.yml                    - add all yaml files from CWD and child folders\n    :argd[elete] {file(s)}              - to remove {file(s)} from the arglist\n    :argd[elete] *                      - remove all files from the arglist\n    :argdo {cmd}                        - execute {cmd} on every file in the arglist\n    :argdo update                       - save all changes to arglist\n    :argdo undo                         - undo changes to your arglist\n    :n[ext]                             - edit next file in the arglist\n    :N[ext] or :prev                    - edit previous file in the arglist\n    :wn[ext]                            - write current file then edit next file in the arglist\n    :wN[ext] or :wprev                  - write current file then edit previous file in the arglist\n    :fir[st] or :rew[ind]               - edit first file in the arglist\n    :la[st]                             - edit last file in the arglist\n\n### Windows\n\n    :sp[lit] {file} or :new {file}      - open {file} in a new buffer and horizontally split window\n    :vs[plit] {file} or :vnew {file}    - open {file} in a new buffer and vertically split window\n    :on[ly]!                            - close all windows except current\n    CTRL-w o                            - close all windows except current\n    CTRL-w s                            - split active window horizontally\n    CTRL-w v                            - split active window vertically\n    CTRL-w w                            - switch windows\n    CTRL-w p                            - switch to previous window\n    CTRL-w n                            - open new buffer in horizantal split\n    CTRL-w q                            - quit a window\n    CTRL-w j or CTRL-w \u003cDn\u003e             - switch to windows below\n    CTRL-w k or CTRL-w \u003cUp\u003e             - switch to window above\n    CTRL-w h or CTRL-w \u003cLeft\u003e           - switch to window left\n    CTRL-w l or CTRL-w \u003cRight\u003e          - switch to window right\n    CTRL-w r                            - rotate the windows clockwise\n    CTRL-w R                            - rotate the windows counter-clockwise\n    CTRL-w x                            - exchange windows, horizontal\n    CTRL-w X                            - exchange windows, vertical\n    CTRL-w _                            - maximize window height of current split\n    CTRL-w |                            - maximize window width of current split\n    CTRL-w =                            - normalize all split sizes\n    CTRL-w T                            - break out current window into new tab\n    :res[size] {num}                    - resize active horizontal window by {num} rows\n    :vert[ical] res[size] {num}         - resize active vertical window by {num} rows\n    {buffer_id}CTRL-w ^                 - split windows with the buffer of {id}\n    :windo {cmd}                        - execute {cmd} for all windows\n    :windo difft[his]                   - start diff mode in all open windows\n    :windo diffo[ff]                    - stop diff mode for all open windows\n    :sf {file}                          - split window and :find {file}\n    :vert[ical] sf {file}               - split window vertically and :find {file}\n\n### Tabs\n\n    :tabe[dit] {file}                   - open existing {file} in new tab\n    :tabe[dit] %                        - move the active window into its own tab\n    :tabn {file}                        - open {file} in a new tab\n    :tabs                               - list tabs\n    gt or :tabn[ext]                    - move to the next tab\n    gT or :tabp[rev]                    - move to the previous tab\n    {n}gt                               - move to tab number {n}\n    :tabmove {n}                        - move current tab to {n}th position (indexed from 0)\n                                          if no position provided, moves to last position\n    :tabc[lose]                         - close the current tab and all its windows\n    :tabo[nly]                          - close all tabs except for the current one\n    :tabd[o] {cmd}                      - execute {cmd} in each tab page\n\n### Jump list\n\n    CTRL-o, CTRL-i                      - go to the previous (older), next (is near o) cursor position\n    :jumps                              - to display jump list\n    :clearjumps                         - clear the jump list\n    gf                                  - go to file in cursor\n\n### Change list\n\n    :changes                            - Show change list\n    g;                                  - jump to the next change\n    g,                                  - jump to the previous change\n\n### Quickfix list\n\n    # commands that populate Quickfix list\n    :vim[grep] /pattern {file}          - search using Vim's native functionality\n    :gr[ep]                             - search via exteran program specified by grepprg setting\n    :helpgr[ep]                         - search help text files\n    :mak[e]                             - call the program specified by the makeprg setting (default is make)\n    :cex[pr] {expression}               - use {expression} to populate to list\n    :cex[pr] []                         - clear the quickfix list\n\n    # vimgrep examples\n    :vim /foo/g %                       - search in current active buffer only\n    :vim /foo/g fo.txt ab.txt           - search fo.txt and ab.txt for foo\n    :vim /foo/g *.txt                   - search *.txt for foo\n    :vim /foo/g **/*                    - search recursive current directory and below\n    :vim /foo/g **/*.txt                - search recursive current directory and below in all *.txt file(s)\n    :vim /foo/g ##                      - search files in arglist\n    :vim /foo/gj ##                     - search files in arglist, do not jump to first match\n    :vim /foo/gf ##                     - search files in arglist, fuzzy match the pattern\n\n    # commands to use Quickfix list\n    :cw[indow]                          - open the quickfix window if it's not empty\n    :cope[n]                            - open quickfix window\n    :ccl[ose]                           - close quifxix window\n    :cn[ext], :cp[rev]                  - jump to next/previous error\n    :cc {n}                             - jump to the {n} line in the quickfix window\n    :cnf[ile], :cpf[file]               - jump to first error in the next/previous file\n    :cab[ove], :cbe[ow]                 - jump to the error above/below the current line\n    :col[der], :cnew[er]                - go to the older/newer quickfix list\n    :chi[story]                         - Show the list of quickfix lists\n    :cfir[st], :cla[st]                 - go to first/last location\n    :cdo {cmd}                          - execute {cmd} in each valid entry in the quickfix list\n    :cfdo {cmd}                         - execute {cmd} in each file in the quickfix list\n    :colder, :cnewer                    - go to older/newer quickfix list\n\n### Go to variable definition\n\n    *                                   - search for the exact word under the cursor\n    g*                                  - same as *, but allows for partial matches\n    #                                   - search for the exact word under the cursor, reverse direction\n    g#                                  - same as #, but allows for partial matches, reverse direction\n    gd                                  - go to local variable\n    gD                                  - go to global variable definition\n\n### Tags\n\n    CTRL-]                              - jump to tag under cursor\n    gCTRL-]                             - prompt user to select from multiple matches\n    :t[ag] {tag}                        - jump to tag {tag}\n    :t[ag] {tag} {file}                 - jump to tag {tag} in file {file}\n    :t[ag] {tag} {file} {line}          - jump to tag {tag} in file {file} at line {line}\n    :tj[ump] {keyword}                  - prompt uer select from multiple matches for {keyword}\n    :popup or \u003cCTRL-t\u003e                  - reverse through tag history\n    :tn[ext]                            - jump to next matching tag\n    :tp[rev]                            - jump to previous matching tag\n    :tfirst                             - jump to first matching tag\n    :tlast                              - jump to last matching tag\n    :tselect                            - prompt user to choose an item from the tag match list\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichlamdev%2Fvim-cheatsheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichlamdev%2Fvim-cheatsheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichlamdev%2Fvim-cheatsheet/lists"}