我在vim中使用jk作为我的转义序列,在bash和zshell中使用vi-mode。我怎么在鱼壳里做这个?
即在vim中:
inoremap jk <esc>
庆典:
bind -m vi-insert '"jk": vi-movement-mode'
zsh的
bindkey -M viins 'jk' vi-cmd-mode
什么是鱼壳等价物?
我假设你已经通过执行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
,但除非您创建自动加载功能,否则它不会在新的鱼会话中持久存在。此外,如果你在vi和emacs绑定之间切换,你会想要保护绑定,所以它只针对vi模式:
if test "$__fish_active_key_bindings" = "fish_vi_key_bindings"
bind ....
end
这是一篇博文,完全符合我的要求:
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
和
~/.config/fish/config.fish
---------------------------------------------------
set fish_key_bindings fish_user_key_bindings