向不自动执行字符串的鱼添加绑定?

向不自动执行字符串的鱼添加绑定?

如何在 fish 中设置键绑定,以便 fish 明白在将其附加到命令行后不要执行绑定字符串,而只是将其作为字符串附加到命令行。

我想设置一个| less通过按 ie Alt+附加的绑定Y

看来,默认情况下,fish 理解要自动执行的命令。

即当我ls在命令行上输入然后按Alt+时Y,它只应该完成看起来像这样的命令ls | less,但仍然不会执行它。

我正在尝试这样的事情

bind \ey " \| less"

但鱼不接受我的句法

答案1

要在命令行末尾添加 |less,它已经是 fish 中的默认功能,使用 Alt-p

http://fishshell.com/user_doc/index.html#editor

如果愿意的话,您可以创建一个函数来执行此操作:

function __fish_less
       commandline -i -- "|less"
end

bind \ey __fish_less

我不确定你是否需要逃离|做一些测试......

编辑:

关于附加,命令行帮助说:

* -a or --append do not remove the current commandline, append the specified string at the end of it
* -i or --insert do not remove the current commandline, insert the specified string at the current cursor position
* -r or --replace remove the current commandline and replace it with the specified string (default)

因此,要附加而不是插入命令,我想您应该使用 -a

相关内容