如何通过自定义搜索命令获得类似的行为,例如fzf中的默认CTRL + T绑定?

时间:2018-06-29 08:33:28

标签: bash readline fzf

(大概)这个问题是关于bash和readline键绑定以及如何自定义它们的。

我想创建一个这样的别名:

alias listvids="rg -g '*.{mkv,mp4,ogv}' --files 2> /dev/null | fzf

列出当前目录树中的某些视频文件,并将输入通过管道传输到fzf以便模糊搜索结果,这确实有效。

但是随后,我希望该命令的作用与~/.fzf/shell/keybindings/key-bindings.bash中定义的默认CTRL-T绑定“相同”,这意味着当按下Enter键时,它应该将从fzf列表中选择的路径粘贴到命令行中。

使用上述命令,当我在路径上按回车键时,它只会在命令行中回显,而不会插入到提示中。

我尝试过类似的

alias listvids="rg -g '*.{mkv,mp4,ogv}' --files 2> /dev/null | fzf --bind=ctrl-j:accept'

希望击中ctrl-j会导致提示中插入选择蜂,但是我想这是错误的方向。

可能的解决方案是将命令链接到一系列readline键绑定,因为这是针对~/.fzf/shell/keybindings/key-bindings.bash中的CTRL + T绑定完成的

bind '"\C-t": " \C-u \C-a\C-k`__fzf_select__`\e\C-e\C-y\C-a\C-y\ey\C-h\C-e\er \C-h"'

其中__fzf_select__用我自己的命令“以某种方式”代替了吗?

我猜该解决方案可以在文档中找到并且尝试了,但是我对bash语法和readline绑定的理解还不够,但是仍然希望能够以上述方式使用fzf进行自定义搜索,然后按Enter选择导致选择插入到提示中。

0 个答案:

没有答案