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 № 1Je 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