如何在 fish shell 中将转义插入模式重新映射为 'jk'?
How to remap escape insert mode to 'jk' in fish shell?
我在 vim 中使用 jk 作为转义序列,在 bash 和 zshell 中使用 vi 模式。我如何在鱼中做到这一点 shell?
即在 vim:
inoremap jk <esc>
bash:
bind -m vi-insert '"jk": vi-movement-mode'
zsh
bindkey -M viins 'jk' vi-cmd-mode
鱼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
交互,但它不会在新的鱼会话中持续存在,除非您创建该自动加载函数。此外,如果您在 vi 和 emacs 绑定之间切换,您将需要保护该绑定,因此它仅适用于 vi 模式:
if test "$__fish_active_key_bindings" = "fish_vi_key_bindings"
bind ....
end
这是一个博客 post,它完全符合我的要求:
https://fedragon.github.io/blog/2015/03/22/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
我在 vim 中使用 jk 作为转义序列,在 bash 和 zshell 中使用 vi 模式。我如何在鱼中做到这一点 shell?
即在 vim:
inoremap jk <esc>
bash:
bind -m vi-insert '"jk": vi-movement-mode'
zsh
bindkey -M viins 'jk' vi-cmd-mode
鱼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
交互,但它不会在新的鱼会话中持续存在,除非您创建该自动加载函数。此外,如果您在 vi 和 emacs 绑定之间切换,您将需要保护该绑定,因此它仅适用于 vi 模式:
if test "$__fish_active_key_bindings" = "fish_vi_key_bindings"
bind ....
end
这是一个博客 post,它完全符合我的要求:
https://fedragon.github.io/blog/2015/03/22/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