fish docs说您可以使用语法
运行命令列表 bind <char> cmd1 cmd2 ...
包括https://fishshell.com/docs/current/commands.html#bind列出的一些特殊命令。
编写具有键绑定的插件,
我添加了
bind '&' `backward-delete-char` on_ampersand
到fish_user_key_bindings.fish
,但没有导致行为 - on_ampersand
函数未被调用,backward_delete_char
也没有。没有on_ampersand
,它就可以了。
文档并未提供有关此行为可能发生的原因。
答案 0 :(得分:2)
这是鱼的一个错误 - 你可以将输入缓冲区编辑命令与你自己的命令结合起来。请参阅https://github.com/fish-shell/fish-shell/issues/3683。
解决方法是在用户定义的函数中使用commandline -f [function]
语法来访问fish_user_key_bindings
专用的函数:
function on_ampersand
commandline -f backward-delete-char # or whatever
[your code]
end