繁体   English   中英

删除鱼中的预设绑定 shell

[英]Remove preset binding in fish shell

我无法为CTRL + p删除 Fish shell 中的默认绑定。

我想使用CTRL+P快捷方式在终端外激活单独的“后台”应用程序。

我努力了:

bind --erase \cp up-or-search

但是绑定仍然存在。 如何删除预设绑定? 文档没有提到它。

我希望这个快捷方式传播到父进程,而不是 Fish 吞下它并对它做出反应。

它不是这样工作的。

如果您所说的“父进程”是指终端,那么它会优先处理每个键。 它可以决定传递什么,不传递什么。

如果“父进程”是指启动 fish 的终端内进程:它通常留在后台并且根本不读取任何键。

fish 将(并且必须)读取它收到的所有输入,即使它随后决定什么也不做。 阅读它就是它如何找出它必须做什么,并且它无法将输入填回。

并且终端不知道它内部运行的进程绑定了哪些,所以它也无法决定发送它知道 shell 会做某事并为自己保留其他事情的密钥。

您的心理 model 不正确。

如何删除预设绑定?

要删除预设绑定,您可以运行

bind --erase --preset \cp

但是,您必须安排在实际设置绑定后运行它。 您可能希望将其存储在名为fish_user_key_bindings的 function 中。 Fish 在它设置绑定后运行它,只要它这样做(例如,如果你切换到 vi 模式,它会重新运行它)。

通常要禁用绑定,你宁愿自己做一个什么也不做的东西,比如

bind \cp true

并不是说这对您想要做的事情有帮助,请参见上文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM