发布于 2018-10-12 13:28:26
我不知道下面的方法有多优雅。但对我来说正常工作。
我使用ReText作为Markdown编辑器,并计划使用
[link-to-pdf](pdf-filename.pdf#page=2)
带有页码的PDF语法。
因此,我定义了本地xdg-open
包装器脚本:
mkdir /home/$USER/bin
echo "export PATH=/home/$USER/bin:$PATH" >> .bashrc
并将以下代码放置到/home/$USER/bin/xdg-open
中:
#!/bin/sh
pdfviewer=atril
filename="$1";
case $filename in
*.pdf#page=*)
file=$(echo "$filename" | cut -d "#" -f 1);
page=$(echo "$filename" | cut -d "#" -f 2 | sed "s/page=/-p /");
$pdfviewer "$file" $page ;;
*) /usr/bin/xdg-open "$@" ;;
esac
这个脚本应该是可执行的(与chmod +x /home/$USER/bin/xdg-open
一起设置),只有在找到.pdf#page=
时才会使用它,否则它将使用系统范围的/usb/bin/xdg-open
。
我已经在我的Ubuntu16.04 LTS伙伴上用Atril PDF查看器测试了这个方法。如果需要,可以将pdfviewer
变量更改为evince
。
作为免费的奖励,我们可以在终端中使用.pdf#page=
语法:
xdg-open /usr/share/doc/qpdf/qpdf-manual.pdf#page=12
注意:在这样的操作之后,我们有两个xdg-open
可执行文件-- whereis xdg-open
的输出应该变成xdg-open: /usr/bin/xdg-open /home/user/bin/xdg-open /usr/share/man/man1/xdg-open.1.gz
。
https://askubuntu.com/questions/1083236
复制