我将jk用作vim的转义序列,以及bash和zshell的vi-mode。我该怎么做?
即在vim中:
inoremap jk <esc>
重击:
bind -m vi-insert '"jk": vi-movement-mode'
sh
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