我经常发现自己在寻找 PDF 文档。幸运的是,我发现 pdfgrep 在按内容查找 PDF 文档方面确实做得很好。
通过以下命令,我可以搜索首页上包含我的搜索词的文档
pdfgrep -irl --page-range=1 2>/dev/null 'mysearchword'
是否可以将此命令集成到 Nemo 文件管理器搜索中?
答案1
是的!
https://github.com/linuxmint/nemo/tree/master/search-helpers解释如何:
- 编写一个脚本或程序,获取文件名并输出该文件的纯文本
- 使该脚本可执行
- 编写一个搜索帮助器定义文件并将其放入
~/.local/share/nemo/search-helpers
.
幸运的是,第一部分已经由内部使用的 PDF 库完成pdfgrep
:有一个pdftotext
实用程序。
所以你需要做的是安装pdftotext
(sudo apt install poppler-utils
),并编写application-pdf.nemo_search_helper
:
[Nemo Search Helper]
TryExec=pdftotext
Exec=pdftotext %s
MimeType=application/pdf;
Priority=100
并将其放入application-pdf.nemo_search_helper
.
有趣的事实:
nemo 5 中已经实现了这一功能,有一个 pdftotext 搜索助手,因此您无需执行任何操作。只需安装,当您在 nemo 中点击+poppler-utils
时,您应该会得到该搜索。ctrlf
不太有趣的事实:Ubuntu 21.10 出奇的保守
...在 Nemo 版本中,它提供了:您需要 nemo 5,但它提供了 nemo 4。
您可以构建官方 nemo 源放入 Ubuntu 软件包并安装它,但不做任何保证。这可能会破坏您系统上的东西,我尚未测试该功能!
现在,您可以从源代码构建 nemo:
sudo apt install git-buildpackage
git clone https://github.com/linuxmint/nemo
cd nemo
dpkg-buildpackage -rfakeroot
它会抱怨缺少包:
dpkg-checkbuilddeps: error: Unmet build dependencies: cinnamon-l10n debhelper-compat (= 12) dh-python gobject-introspection gtk-doc-tools (>= 1.4) intltool (>= 0.40.1) itstool libatk1.0-dev (>= 1.32.0) libcinnamon-desktop-dev (>= 4.8) libexempi-dev (>= 2.2.0) libexif-dev (>= 0.6.20) libgail-3-dev libgirepository1.0-dev (>= 0.9.12) libglib2.0-dev (>= 2.45.7) libglib2.0-doc libgsf-1-dev libgtk-3-dev (>= 3.10) libgtk-3-doc libnotify-dev (>= 0.7.0) libpango1.0-dev libx11-dev libxapp-dev (>= 2.0.0) libxext-dev libxml2-dev (>= 2.7.8) libxrender-dev meson python3-gi x11proto-core-dev
只需使用以下命令安装这些(该列表可能与您看起来不同!)
sudo apt install cinnamon-l10n debhelper-compat dh-python gobject-introspection gtk-doc-tools intltool itstool libatk1.0-dev libcinnamon-desktop-dev libexempi-dev libexif-dev libgail-3-dev libgirepository1.0-dev libglib2.0-dev libglib2.0-doc libgsf-1-dev libgtk-3-dev libgtk-3-doc libnotify-dev libpango1.0-dev libx11-dev libxapp-dev libxext-dev libxml2-dev libxrender-dev meson python3-gi x11proto-core-dev
然后再试一次:
dpkg-buildpackage -rfakeroot
现在应该可以完美地工作了。 (它适用于我的新 Ubuntu 21.10 容器)。您现在可以安装:
cd ..
sudo dpkg -i gir*.deb libnemo*.deb nemo-data*.deb nemo_*.deb
# there will be config errors of the above; run apt-get install to fix these:
sudo apt-get install -f
好了,您现在已经安装了最先进的 nemo。