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 就可以了,但它不起作用。