/ / Comment remapper le mode insertion d'échappement en 'jk' dans une coquille de poisson? - coquille, vim, vi, poisson

Comment remapper le mode d'insertion d'échappement sur 'jk' dans le shell de poisson? - coquille, vim, vi, poisson

J'utilise jk comme séquence d'échappement dans vim, ainsi que vi-mode pour bash et zshell. Comment est-ce que je fais ceci dans la coquille de poisson?

c'est-à-dire dans vim:

inoremap jk <esc>

frapper:

bind -m vi-insert ""jk": vi-movement-mode"

zsh

bindkey -M viins "jk" vi-cmd-mode

Quel est l'équivalent en coquille de poisson?

Réponses:

1 pour la réponse № 1

Je suppose que vous avez déjà activé le mode vi en exécutant fish_vi_key_bindings. Sinon, la question n’a pas de sens :-)

Créer un fichier nommé ~ / .config / fish / functions / fish_user_key_bindings.fish qui contient ceci:

function fish_user_key_bindings
bind -M insert jk "if commandline -P; commandline -f cancel; else; set fish_bind_mode default; commandline -f backward-char force-repaint; end"
end

Vous pouvez exécuter le bind de manière interactive, mais il ne sera pas "persistant à traversnouvelles sessions de pêche, à moins que vous ne créiez cette fonction à chargement automatique. De plus, si vous basculez entre vi et emacs, vous voudrez garder cette liaison afin que cela ne soit fait que pour le mode vi:

if test "$__fish_active_key_bindings" = "fish_vi_key_bindings"
bind ....
end

-3 pour la réponse № 2

Voici un article de blog qui fait exactement ce que je cherchais:

https://fedragon.github.io/vimode-fishshell-osx/

TLDR;)

~/.config/fish/functions/fish_user_key_bindings.fish
---------------------------------------------------
function fish_user_key_bindings
fish_vi_key_bindings
bind -M insert -m default jk backward-char force-repaint
end

Et

~/.config/fish/config.fish
---------------------------------------------------
set fish_key_bindings fish_user_key_bindings