Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nyquase/vi-mode
Oh-my-zsh plugin for vim emulation, but actually usable
https://github.com/nyquase/vi-mode
oh-my-zsh vim zsh zsh-plugins
Last synced: 30 days ago
JSON representation
Oh-my-zsh plugin for vim emulation, but actually usable
- Host: GitHub
- URL: https://github.com/nyquase/vi-mode
- Owner: Nyquase
- License: mit
- Created: 2019-03-18T18:56:22.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-01-04T18:59:09.000Z (12 months ago)
- Last Synced: 2024-04-16T13:56:41.273Z (8 months ago)
- Topics: oh-my-zsh, vim, zsh, zsh-plugins
- Language: Shell
- Size: 232 KB
- Stars: 29
- Watchers: 2
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
vi-mode
=======
This plugin increase `vi-like` zsh functionality.- Line cursor in insert mode
- Block cursor in normal and visual mode
- Mode indicator
Use `ESC` or `CTRL-[` to enter `Normal mode`.
History
-------- `ctrl-p` : Previous command in history
- `ctrl-n` : Next command in historyMode indicators
---------------Mode are indicated by the right prompt when not defined by theme.
You can override the default by changing the corresponding variables:`$INSERT_MODE_INDICATOR`
`$NORMAL_MODE_INDICATOR`
`$VISUAL_MODE_INDICATOR`> Example:
> ```zsh
> NORMAL_MODE_INDICATOR="%{$FX[italic]$FG[201]%}NORMAL%{$FX[reset]%}"
> ```
> Will display NORMAL in italic purple when in vicmd (normal) modeVim edition
------------ `ctrl-v` : Edit current command line in Vim
- `v` : Visual mode (works better with [zsh-vimode-visual](https://github.com/b4b4r07/zsh-vimode-visual))Movement
--------- `$` : To the end of the line
- `^` : To the first non-blank character of the line
- `0` : To the first character of the line
- `w` : [count] words forward
- `W` : [count] WORDS forward
- `e` : Forward to the end of word [count] inclusive
- `E` : Forward to the end of WORD [count] inclusive
- `b` : [count] words backward
- `B` : [count] WORDS backward
- `t{char}` : Till before [count]'th occurrence of {char} to the right
- `T{char}` : Till before [count]'th occurrence of {char} to the left
- `f{char}` : To [count]'th occurrence of {char} to the right
- `F{char}` : To [count]'th occurrence of {char} to the left
- `;` : Repeat latest f, t, F or T [count] times
- `,` : Repeat latest f, t, F or T in opposite directionInsertion
---------- `i` : Insert text before the cursor
- `I` : Insert text before the first character in the line
- `a` : Append text after the cursor
- `A` : Append text at the end of the line
- `o` : Insert new command line below the current one
- `O` : Insert new command line above the current oneDelete and Insert
------------------ `ctrl-h` : While in *Insert mode*: delete character before the cursor
- `ctrl-w` : While in *Insert mode*: delete word before the cursor
- `d{motion}` : Delete text that {motion} moves over
- `dd` : Delete line
- `D` : Delete characters under the cursor until the end of the line
- `c{motion}` : Delete {motion} text and start insert
- `cc` : Delete line and start insert
- `C` : Delete to the end of the line and start insert
- `r{char}` : Replace the character under the cursor with {char}
- `R` : Enter replace mode: Each character replaces existing one
- `x` : Delete [count] characters under and after the cursor
- `X` : Delete [count] characters before the cursor# Installation
### Zplug
1. Add this to your [zplug](https://github.com/zplug/zplug) section
```sh
zplug "nyquase/vi-mode"
zplug "b4b4r07/zsh-vimode-visual", defer:3
```My recommended zplug plugins
```sh
zplug "nyquase/vi-mode"
zplug "zsh-users/zsh-autosuggestions"
zplug "zsh-users/zsh-completions"
zplug "zdharma/fast-syntax-highlighting", defer:2
zplug "b4b4r07/zsh-vimode-visual", defer:3
```### Manual (Git Clone)
1. Clone this repository somewhere on your machine.
```sh
git clone https://github.com/nyquase/vi-mode ~/.zsh/vi-mode
```2. Add the following to your `.zshrc`:
```sh
source ~/.zsh/vi-mode/vi-mode.zsh
```3. Start a new terminal session.
### Oh My Zsh
1. Clone this repository into `ZSH_CUSTOM/plugins` (by default `~/.oh-my-zsh/custom/plugins`)
```sh
# If you want better visual mode
git clone https://github.com/b4b4r07/zsh-vimode-visual ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-vimode-visualgit clone https://github.com/nyquase/vi-mode ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/vi-mode
```2. Add the plugin to the list of plugins for Oh My Zsh to load (inside `.zshrc`):
```sh
plugins=(vi-mode zsh-vimode-visual)
```
This will override the default Oh My Zsh vi-mode if you were using it3. Start a new terminal session.