Fish vi-mode 将 Ctrl-o 绑定到插入模式下的快速命令

Fish vi-mode bind Ctrl-o to quick command in insert mode

我是 fish shell 和 vim 自定义键绑定的新手。我已将 fish 置于 vi 模式,我注意到缺少一些命令,例如插入模式下的 Ctrl-o 以执行普通命令。有谁知道如何添加这个键绑定?

我已经成功添加了相当于:

inoremap jk <ESC>

与:

bind -M insert jk 'set fish_bind_mode default; commandline -f repaint'

但我不知道如何等待命令然后返回插入模式。提前致谢。

首先:

bind -M insert jk 'set fish_bind_mode default; commandline -f repaint'

也可以只是

bind -M insert -m default jk 'commandline -f repaint'

(“-m”是“--sets-mode”的缩写,我不确定为什么它不会自己重绘)


运行 普通模式下的一个命令很棘手。因为您必须在执行一个绑定后 运行 编码,所以您将不得不接触所有绑定。

一种可能性是创建一个新的 "default-one" 模式,通过

bind -M insert -m default-one \co 'commandline -f repaint'

然后您必须复制 "default" 模式的所有绑定(通过 bind -M default 查看它们)以添加 -m insert。我不确定如何处理那些已经切换到不同模式的东西,比如 "v"(切换到视觉模式)。