![在 Zathura 中打开历史记录中的文件](https://linux22.com/image/139796/%E5%9C%A8%20Zathura%20%E4%B8%AD%E6%89%93%E5%BC%80%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6.png)
使用内置命令可以实现这一点吗? AFAIK,事实并非如此,所以我尝试定义一个使用exec
Zathura 命令来实现此目的的映射。在bash
,
cat ~/.local/share/zathura/history | grep -Po "\[\K[^\]]*" | dmenu | xargs zathura
exec
完成了这项工作,但在 Zathura 中使用该命令时我还没有设法使该命令正常工作。事实上,就像简单的事情
:exec ls | dmenu
ls | dmenu
即使我用引号括起来,也不起作用。因此,一个更普遍的问题是:如何从 Zathura 中使用管道运行命令?
答案1
#!/bin/sh
options='-columns 6 -width 100 -lines 15 -bw 2 -yoffset -2 -location 1'
selected=$(\
cat ~/.local/share/zathura/history | grep -Po '\[\K[^\]]*' \
| rofi -dmenu -i -markup-rows \
${options}
)
# exit if nothing is selected
[[ -z $selected ]] && exit
zathura "$selected"
exit 0
答案2
对我来说,最近的文件可以使用内置的“打开”命令。
尝试输入内容:open /
,然后按 Tab 键。它应该显示“最近的文件”
答案3
像这样的事情就可以了(几乎,因为<cr>
仍然需要按下才能执行):
map H feedkeys ":exec sh -c \"cat ~/.local/share/zathura/history | grep -Po '\[\K[^\]]*' | dmenu | xargs zathura\""