我在 vim 中使用 jk 作为我的转义序列,在 bash 和 zshell 中使用 vi-mode。我如何在 fish shell 中做到这一点?
即在vim中:
inoremap jk <esc>
bash :
bind -m vi-insert '"jk": vi-movement-mode'
zsh
bindkey -M viins 'jk' vi-cmd-mode
fish shell 当量是多少?
最佳答案
我假设你已经通过执行 fish_vi_key_bindings
启用了 vi 模式。 .否则这个问题没有意义:-)
创建一个名为 ~/.config/fish/functions/fish_user_key_bindings.fish 的文件,其中包含以下内容:
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
您可以运行
bind
交互方式,但除非您创建自动加载的功能,否则它不会在新的 fish session 中持续存在。此外,如果您在 vi 和 emacs 绑定(bind)之间切换,您需要保护该绑定(bind),因此它仅适用于 vi 模式:if test "$__fish_active_key_bindings" = "fish_vi_key_bindings"
bind ....
end
关于shell - 如何在 fish shell 中将转义插入模式重新映射到 'jk'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48956984/