{"id":21365216,"url":"https://github.com/nyquase/vi-mode","last_synced_at":"2025-07-13T04:31:45.158Z","repository":{"id":55150234,"uuid":"176350912","full_name":"Nyquase/vi-mode","owner":"Nyquase","description":"Oh-my-zsh plugin for vim emulation, but actually usable","archived":false,"fork":false,"pushed_at":"2024-01-04T18:59:09.000Z","size":238,"stargazers_count":29,"open_issues_count":1,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-16T13:56:41.273Z","etag":null,"topics":["oh-my-zsh","vim","zsh","zsh-plugins"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/Nyquase.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}},"created_at":"2019-03-18T18:56:22.000Z","updated_at":"2024-02-26T06:02:41.000Z","dependencies_parsed_at":"2024-04-16T11:52:56.320Z","dependency_job_id":"c60e72d7-4ea6-4803-b5fd-cf927ed1cfb9","html_url":"https://github.com/Nyquase/vi-mode","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/Nyquase%2Fvi-mode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nyquase%2Fvi-mode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nyquase%2Fvi-mode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nyquase%2Fvi-mode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nyquase","download_url":"https://codeload.github.com/Nyquase/vi-mode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225855958,"owners_count":17534967,"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":["oh-my-zsh","vim","zsh","zsh-plugins"],"created_at":"2024-11-22T07:10:06.805Z","updated_at":"2024-11-22T07:10:07.298Z","avatar_url":"https://github.com/Nyquase.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"vi-mode\n=======\nThis plugin increase `vi-like` zsh functionality.\n\n- Line cursor in insert mode\n- Block cursor in normal and visual mode\n- Mode indicator\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshot.png\" alt=\"preview\"\u003e\n\u003c/p\u003e\n\nUse `ESC` or `CTRL-[` to enter `Normal mode`.\n\n\nHistory\n-------\n\n- `ctrl-p` : Previous command in history\n- `ctrl-n` : Next command in history\n\n\nMode indicators\n---------------\n\nMode are indicated by the right prompt when not defined by theme.\nYou can override the default by changing the corresponding variables:\n\n`$INSERT_MODE_INDICATOR`  \n`$NORMAL_MODE_INDICATOR`  \n`$VISUAL_MODE_INDICATOR`  \n\n\u003e Example:  \n\u003e ```zsh\n\u003e NORMAL_MODE_INDICATOR=\"%{$FX[italic]$FG[201]%}NORMAL%{$FX[reset]%}\"\n\u003e ```  \n\u003e Will display NORMAL in italic purple when in vicmd (normal) mode\n\nVim edition\n-----------\n\n- `ctrl-v`   : Edit current command line in Vim\n- `v`        : Visual mode (works better with [zsh-vimode-visual](https://github.com/b4b4r07/zsh-vimode-visual))\n\n\nMovement\n--------\n\n- `$`   : To the end of the line\n- `^`   : To the first non-blank character of the line\n- `0`   : To the first character of the line\n- `w`   : [count] words forward\n- `W`   : [count] WORDS forward\n- `e`   : Forward to the end of word [count] inclusive\n- `E`   : Forward to the end of WORD [count] inclusive\n- `b`   : [count] words backward\n- `B`   : [count] WORDS backward\n- `t{char}`   : Till before [count]'th occurrence of {char} to the right\n- `T{char}`   : Till before [count]'th occurrence of {char} to the left\n- `f{char}`   : To [count]'th occurrence of {char} to the right\n- `F{char}`   : To [count]'th occurrence of {char} to the left\n- `;`   : Repeat latest f, t, F or T [count] times\n- `,`   : Repeat latest f, t, F or T in opposite direction\n\n\nInsertion\n---------\n\n- `i`   : Insert text before the cursor\n- `I`   : Insert text before the first character in the line\n- `a`   : Append text after the cursor\n- `A`   : Append text at the end of the line\n- `o`   : Insert new command line below the current one\n- `O`   : Insert new command line above the current one\n\n\nDelete and Insert\n-----------------\n\n- `ctrl-h`      : While in *Insert mode*: delete character before the cursor\n- `ctrl-w`      : While in *Insert mode*: delete word before the cursor\n- `d{motion}`   : Delete text that {motion} moves over\n- `dd`          : Delete line\n- `D`           : Delete characters under the cursor until the end of the line\n- `c{motion}`   : Delete {motion} text and start insert\n- `cc`          : Delete line and start insert\n- `C`           : Delete to the end of the line and start insert\n- `r{char}`     : Replace the character under the cursor with {char}\n- `R`           : Enter replace mode: Each character replaces existing one\n- `x`           : Delete [count] characters under and after the cursor\n- `X`           : Delete [count] characters before the cursor\n\n\n\n\n# Installation\n\n### Zplug\n\n1. Add this to your [zplug](https://github.com/zplug/zplug) section\n\n```sh\nzplug \"nyquase/vi-mode\"\nzplug \"b4b4r07/zsh-vimode-visual\", defer:3\n```\n\nMy recommended zplug plugins\n```sh\nzplug \"nyquase/vi-mode\"\nzplug \"zsh-users/zsh-autosuggestions\"\nzplug \"zsh-users/zsh-completions\"\nzplug \"zdharma/fast-syntax-highlighting\", defer:2\nzplug \"b4b4r07/zsh-vimode-visual\", defer:3\n```\n\n### Manual (Git Clone)\n\n1. Clone this repository somewhere on your machine.\n  ```sh\n  git clone https://github.com/nyquase/vi-mode ~/.zsh/vi-mode\n  ```\n\n2. Add the following to your `.zshrc`:\n  ```sh\n  source ~/.zsh/vi-mode/vi-mode.zsh\n  ```\n\n3. Start a new terminal session.\n\n\n### Oh My Zsh\n\n1. Clone this repository into `ZSH_CUSTOM/plugins` (by default `~/.oh-my-zsh/custom/plugins`)\n\n  ```sh\n  # If you want better visual mode\n  git clone https://github.com/b4b4r07/zsh-vimode-visual ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-vimode-visual\n\n  git clone https://github.com/nyquase/vi-mode ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/vi-mode\n  ```\n\n2. Add the plugin to the list of plugins for Oh My Zsh to load (inside `.zshrc`):\n  ```sh\n  plugins=(vi-mode zsh-vimode-visual)\n  ```\n  This will override the default Oh My Zsh vi-mode if you were using it\n\n3. Start a new terminal session.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyquase%2Fvi-mode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnyquase%2Fvi-mode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyquase%2Fvi-mode/lists"}