Add zsh/oh my zsh/w10k
This commit is contained in:
75
zsh/.oh-my-zsh/plugins/vi-mode/README.md
Normal file
75
zsh/.oh-my-zsh/plugins/vi-mode/README.md
Normal file
@ -0,0 +1,75 @@
|
||||
vi-mode
|
||||
=======
|
||||
This plugin increase `vi-like` zsh functionality.
|
||||
|
||||
Use `ESC` or `CTRL-[` to enter `Normal mode`.
|
||||
|
||||
|
||||
History
|
||||
-------
|
||||
|
||||
- `ctrl-p` : Previous command in history
|
||||
- `ctrl-n` : Next command in history
|
||||
- `/` : Search backward in history
|
||||
- `n` : Repeat the last `/`
|
||||
|
||||
|
||||
Mode indicators
|
||||
---------------
|
||||
|
||||
*Normal mode* is indicated with red `<<<` mark at the right prompt, when it
|
||||
wasn't defined by theme.
|
||||
|
||||
|
||||
Vim edition
|
||||
-----------
|
||||
|
||||
- `v` : Edit current command line in Vim
|
||||
|
||||
|
||||
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 direction
|
||||
|
||||
|
||||
Insertion
|
||||
---------
|
||||
|
||||
- `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 one
|
||||
|
||||
|
||||
Delete 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
|
60
zsh/.oh-my-zsh/plugins/vi-mode/vi-mode.plugin.zsh
Normal file
60
zsh/.oh-my-zsh/plugins/vi-mode/vi-mode.plugin.zsh
Normal file
@ -0,0 +1,60 @@
|
||||
# Updates editor information when the keymap changes.
|
||||
function zle-keymap-select() {
|
||||
# update keymap variable for the prompt
|
||||
VI_KEYMAP=$KEYMAP
|
||||
|
||||
zle reset-prompt
|
||||
zle -R
|
||||
}
|
||||
|
||||
zle -N zle-keymap-select
|
||||
|
||||
function vi-accept-line() {
|
||||
VI_KEYMAP=main
|
||||
zle accept-line
|
||||
}
|
||||
|
||||
zle -N vi-accept-line
|
||||
|
||||
|
||||
bindkey -v
|
||||
|
||||
# use custom accept-line widget to update $VI_KEYMAP
|
||||
bindkey -M vicmd '^J' vi-accept-line
|
||||
bindkey -M vicmd '^M' vi-accept-line
|
||||
|
||||
# allow v to edit the command line (standard behaviour)
|
||||
autoload -Uz edit-command-line
|
||||
zle -N edit-command-line
|
||||
bindkey -M vicmd 'v' edit-command-line
|
||||
|
||||
# allow ctrl-p, ctrl-n for navigate history (standard behaviour)
|
||||
bindkey '^P' up-history
|
||||
bindkey '^N' down-history
|
||||
|
||||
# allow ctrl-h, ctrl-w, ctrl-? for char and word deletion (standard behaviour)
|
||||
bindkey '^?' backward-delete-char
|
||||
bindkey '^h' backward-delete-char
|
||||
bindkey '^w' backward-kill-word
|
||||
|
||||
# allow ctrl-r and ctrl-s to search the history
|
||||
bindkey '^r' history-incremental-search-backward
|
||||
bindkey '^s' history-incremental-search-forward
|
||||
|
||||
# allow ctrl-a and ctrl-e to move to beginning/end of line
|
||||
bindkey '^a' beginning-of-line
|
||||
bindkey '^e' end-of-line
|
||||
|
||||
# if mode indicator wasn't setup by theme, define default
|
||||
if [[ "$MODE_INDICATOR" == "" ]]; then
|
||||
MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}"
|
||||
fi
|
||||
|
||||
function vi_mode_prompt_info() {
|
||||
echo "${${VI_KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}"
|
||||
}
|
||||
|
||||
# define right prompt, if it wasn't defined by a theme
|
||||
if [[ "$RPS1" == "" && "$RPROMPT" == "" ]]; then
|
||||
RPS1='$(vi_mode_prompt_info)'
|
||||
fi
|
Reference in New Issue
Block a user