J'ai mappé alt – k et alt – j pour l 'historique de navigation, mais je voudrais changer vicmd automatiquement chaque fois que j'appelle une input d' historique, parce que la plupart du time je dois déplacer le slider à une certaine position et faire quelques changements.
Voici mes parameters actuels dans .zshrc, que dois-je faire pour atteindre l'objective mentionné ci-dessus?
bindkey '^[k' up-line-or-history bindkey '^[j' down-line-or-history
Ce que vous voulez peut être accompli en appuyant simplement sur Esc après ou Alt + j ou Alt + k, mais si vous voulez save cette frappe, append ce qui suit à votre .zshrc
peut vous aider.
vi-cmd-up-line-history() { zle vi-cmd-mode zle up-line-or-history } zle -N vi-cmd-up-line-history bindkey -M vicmd '^[k' vi-cmd-up-line-history bindkey -M viins '^[k' vi-cmd-up-line-history vi-cmd-down-line-history() { zle vi-cmd-mode zle down-line-or-history } zle -N vi-cmd-down-line-history bindkey -M vicmd '^[j' vi-cmd-down-line-history bindkey -M viins '^[j' vi-cmd-down-line-history
Ce qu'il fait est de lier de nouveaux widgets appelés vi-cmd-down-line-history
et vi-cmd-up-line-history
à Alt + j et Alt + k . Ces widgets modifient le mode en cmd en appelant le widget vi-cmd-mode
, puis en lançant respectivement la down-line-or-history
et up-line-or-history
.