I prefer use ijkl for cursor move, so I try to map all hjkl motion for that
the normal mode and visual mode, it works well, but in viopp mode, it doesn't work
Reproduction steps
use this configuration
# NOTE : Utility
local function set_keys() {
local mode=$1
for key value (${(kv)keys}); do
zvm_bindkey $mode $key $value
done
}
local function unset_key() {
local mode=$1; shift 1
local keys=("$@")
for key ($keys); do
bindkey -r -M $mode $key
done
}
function zvm_config () {
ZVM_INSERT_MODE_CURSOR=$ZVM_CURSOR_BLINKING_BEAM
ZVM_NORMAL_MODE_CURSOR=$ZVM_CURSOR_BLINKING_BLOCK
# ZVM_OPPEND_MODE_CURSOR=$ZVM_CURSOR_BLINKING_UNDERLINE
ZVM_VI_INSERT_SURROUND_BINDKEY=s-prefix # zsh-vim-surround support
ZVM_VI_INSERT_ESCAPE_BINDKEY='^S'
ZVM_VI_SURROUND_BINDKEY='s-prefix'
ZVM_READKEY_ENGINE=$ZVM_READKEY_ENGINE_NEX
ZVM_VI_HIGHLIGHT_BACKGROUND=#89e051 # Hex value
ZVM_VI_HIGHLIGHT_FOREGROUND=#1d202f # Hex value
unset_key viopp \
j k iW iw ia
local -A keys
keys=(
h zvm_enter_insert_mode
H zvm_insert_bol
i up-line-or-history
k down-line-or-history
j vi-backward-char
l vi-forward-char
J vi-beginning-of-line
L vi-end-of-line
)
set_keys vicmd
keys=(
j backward-char
k down-line
)
set_keys visual
keys=(
W select-in-blank-word
w select-in-word
j vi-backward-char
l vi-forward-char
i up-line
k down-line
J vi-beginning-of-line
L vi-end-of-line
)
set_keys viopp
# zvm_bindkey visual "i" up-line
# unset_key visual \
# "i^["\
# "i "\
# "i\""\
# "i'"\
# "i("\
# "i)"\
# "i<"\
# "i>"\
# "iW"\
# "i["\
# "i]"\
# "i\`"\
# "ia"\
# "iw"\
# "i{"\
# "i}"
# visual "h" zvm_readkeys_handler
# visual "h^[" zvm_select_surround
# visual "h " zvm_select_surround
# visual "h\"" zvm_select_surround
# visual "h'" zvm_select_surround
# visual "h(" zvm_select_surround
# visual "h)" zvm_select_surround
# visual "h<" zvm_select_surround
# visual "h>" zvm_select_surround
# visual "hW" select-in-blank-word
# visual "h[" zvm_select_surround
# visual "h]" zvm_select_surround
# visual "h\`" zvm_select_surround
# visual "ha" select-in-shell-word
# visual "hw" select-in-word
# visual "h{" zvm_select_surround
# visual "h}" zvm_select_surround
}
2. check the viopp mode keybindings:
![image](https://user-images.githubusercontent.com/107862700/231667082-835aeb3d-835a-4c13-bebd-69ed7c5dd091.png)
the zsh told me that it was defined correctly
## Expected behavior
try to type `dj`, it should delete the cursor char and the char left cursor, but it does nothing...
General information
Basic examination
Problem description
I prefer use ijkl for cursor move, so I try to map all hjkl motion for that the normal mode and visual mode, it works well, but in viopp mode, it doesn't work
Reproduction steps
local function unset_key() { local mode=$1; shift 1 local keys=("$@") for key ($keys); do bindkey -r -M $mode $key done }
function zvm_config () { ZVM_INSERT_MODE_CURSOR=$ZVM_CURSOR_BLINKING_BEAM
ZVM_NORMAL_MODE_CURSOR=$ZVM_CURSOR_BLINKING_BLOCK
}
function load_ins_key () { keys=( '^p' up-line-or-search '^k' menu-select '^n' menu-select '^v' describe-key-briefly '^b' backward-word '^f' forward-word ) set_keys viins } zvm_after_init_commands+=(load_ins_key)
function zvm_after_lazy_keybindings() {
Unbind key
}