{"id":22326480,"url":"https://github.com/thecodesmith/vim-workshop","last_synced_at":"2026-01-06T10:07:52.160Z","repository":{"id":84776800,"uuid":"101423851","full_name":"thecodesmith/vim-workshop","owner":"thecodesmith","description":"A quick intro to Vim","archived":false,"fork":false,"pushed_at":"2017-08-25T16:53:59.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-31T07:32:39.900Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/thecodesmith.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":"2017-08-25T16:49:11.000Z","updated_at":"2017-08-25T16:49:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"95fd86c1-0582-4a13-be9c-17ff9e97a3dc","html_url":"https://github.com/thecodesmith/vim-workshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodesmith%2Fvim-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodesmith%2Fvim-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodesmith%2Fvim-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodesmith%2Fvim-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thecodesmith","download_url":"https://codeload.github.com/thecodesmith/vim-workshop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245598317,"owners_count":20641884,"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":[],"created_at":"2024-12-04T02:17:51.665Z","updated_at":"2026-01-06T10:07:52.113Z","avatar_url":"https://github.com/thecodesmith.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vim Intro\n\n\n## Modes\n\nVim is a modal text editor. Learn each mode and take advantage of it.\n\n* Normal or Command mode\n* Insert mode\n* Visual mode\n\n    i      Enter insert mode\n    v      Enter visual mode\n    \u003cEsc\u003e  Enter command mode\n\n\n## Use `\u003cNOP\u003e` mappings to break bad habits\n\n    noremap \u003ckey\u003e \u003cNOP\u003e\n\n\n## Movement\n\nDon't use the cursor keys! Break the habit:\n\n    noremap \u003cUp\u003e \u003cNOP\u003e\n    noremap \u003cDown\u003e \u003cNOP\u003e\n    noremap \u003cLeft\u003e \u003cNOP\u003e\n    noremap \u003cRight\u003e \u003cNOP\u003e\n\n\n### Simple movement\n\n    h\n    j\n    k\n    l\n\nHolding down j is a Vim anti-pattern.\nBreak that habit too. Use word-wise motions instead.\n\n### Word-wise\n\n    w, W\n    b, B\n    e, E\n    0\n    $\n    I\n    A\n    %\n    ]}\n    [{\n\n### File-wise\n\n    gg\n    G\n    }\n    {\n\n### Screen-wise\n\n    H\n    M\n    L\n\n    zb\n    zt\n    zz\n\n### Using [count]\n\nApply it to (almost) any command.\n\n    Examples: 10j, 5fe\n\n\n## Editing\n\n    i for Insert Mode\n\n    d\n    c\n    x\n    y\n    p\n    r\n    .\n\n    dd\n    yy\n\n    o, O\n\n\n## Visual Block\n\n    v\n\n\n## Text Objects\n\nLearn these!\n\n    i[obj]\n    a[obj]\n\nObjects:\n\n    w  word\n    p  paragraph\n    '  single-quoted string\n    \"  quoted string\n    `  backtick\n    \u003c  angle brackets\n    (\n    {\n    [\n\nExamples:\n\n    iw\n    i(\n    i{\n\n\n## Undo and Redo\n\n    u  undo\n    \u003cctrl-r\u003e  redo\n\n\n## Search and Replace\n\n    f, F  find\n    t, T  'til\n\nUse with [count]\n\n    *  search word under cursor\n    /  search\n    ?  search up\n    n  move to next match\n    N  move to previous match\n\n    :%s/old/new/gc  find/replace\n\n\n## External Commands\n\n\n    :!command\n\n\n## Completion\n\nCtrl-p in Insert Mode\n\n\n## Marks\n\nSet marks to quickly jump between locations in a document or between documents\n\nSet mark:\n\n    m{a-zA-Z}\n\nJump to mark:\n\n    '{char}  first non-blank character on marked line\n    `{char}  exact position where mark was set\n\nView marks:\n\n    :marks\n\n\n## Tabs, Buffers, Windows\n\nDon't use tabs. Use buffers instead.\n\n    :e file    edit file\n    :sp, :vsp  open in split\n    :buffers   view buffers\n    :b{N}      switch to buffer N\n    :sp N\n\n    :w   write file to disk\n    :q   quit\n    :q!  quit, discarding changes\n    :qa  quit all buffers\n    :wq  write and quit\n\n    Ctrl-W {h, j, k, l}  move between windows\n\n\n## Macros\n\nReplay single commands using `.`. For more than one command, use macros.\n\n    q{0-9a-zA-Z}  start recording a macro to specified macro buffer\n    qq  simplest way to record a macro\n    @q  replay macro in that macro buffer\n    @@  replay last played macro\n\n\n## Vimrc and Plugins\n\nhttps://github.com/thecodesmith/dotfiles/blob/master/vim/vimrc.symlink\nVundle plugin manager\n\n### Some useful plugins\n\nAbsolutely critical:\n\n* Ctrl-P\n\nNice to have:\n\n* Tabularize\n* Commentary\n* Surround\n* NerdTree\n* Rooter\n* Tmux Navigator\n\nLanguage support plugins for languages with limited built-in support:\n\n* groovy\n* yaml\n* go\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodesmith%2Fvim-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecodesmith%2Fvim-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodesmith%2Fvim-workshop/lists"}