fzf非常好用!我想使用它来搜索bash历史记录。当找到匹配项时,我希望将其放置在命令行上,但不要立即执行,以便我可以进一步编辑它。(所有这些都在源bash函数或脚本中,因此可以访问我的历史记录。)
我已经接近实现了,但还没有完全成功。
这会选择命令,但会立即运行:
eval $(history | "$HOME/bin/fzf" +s | sed 's/ *[0-9]* *//')
这将内容复制到我的剪贴板,但当我粘贴时,它仍然以空格和换行符结束,因此会立即执行。
history | "$HOME/bin/fzf" +s | sed 's/ *[0-9]* *//' | xclip -se c
我也尝试了几种变化,包括:
history | "$HOME/bin/fzf" +s | sed -e 's/ *[0-9]* *//' -e 's/$//' | xclip -se c
使用相同的结果。
这实际上是可行的,但我仍然需要将其放入剪贴板,然后手动粘贴。
history | "$HOME/bin/fzf" +s | sed -re 's/ *[0-9]* *//' | awk '{printf "%s", $0}' | xclip -se c
如何一步完成此操作,而不需要手动复制粘贴?
我认为只是省略xclip应该就可以完成,但这并不起作用。