如何在 Unity 中搜索文件?

如何在 Unity 中搜索文件?

我尝试使用 dash 代替 gnome-do,但找不到文件。“查找文件”仅返回“最佳结果”。

在 gnome-do 中,我能够设置一些常用目录以进行索引。例如,我有一个名为“ToRead”的文件夹,里面全是 pdf 文件。我可以搜索pdf。然后,我就可以在 ToRead 中浏览 pdf 文件,并且无需使用鼠标即可打开文件。理想情况下,我希望在 Dash/Places 界面中复制此功能。这可能吗?

如果没有,那么最短的方法是什么?


澄清:

  • “文件和文件夹”没有满足我的要求。它只显示我最近使用过的文件。
  • 我希望能够在不使用鼠标的情况下做到这一点,并且不必按数百次 Tab 键。
  • 我不需要将我的搜索编入索引。文件系统抓取(但仅限于我设置的目录)就可以了。

答案1

我发现unity-place-python示例代码并用它来创建镜头来搜索文件系统。它目前有点不稳定,但您可以搜索文件并且通常会得到结果。

Unity 文件搜索镜头

您可以在 Unity Launcher 中访问镜头。您可以在此处看到我搜索“讲座”的位置。

文件搜索镜头显示搜索“讲座”

左下角的放大镜是文件搜索镜头。(图标根据您的图标主题而变化。)镜头在两个单独的部分显示文件和文件夹。

ShowGlobal=true您可以通过设置将其添加到主仪表板(Ubuntu 按钮)/usr/share/unity/places/filesearch.place。遗憾的是,Unity 目前无法自定义仪表板中的镜头。

文件和文件夹部分合并在“文件搜索”标题下的破折号中。

仪表板显示文件搜索镜头中“图标”的部分结果

配置

当 filesearch-lens 首次运行时,它将创建一个配置文件~/.filesearch.cfg。您可以自定义要搜索的目录、搜索深度以及要忽略的文件夹。

例如,这是我的配置:

[search]
#dirs = a comma separated list of folders to search
dirs = ~/data
#depth = how deep from / to search
depth = 5

[ignore]
#pattern = python-style regex for directories to ignore
pattern = ^\.|^bin$|^lib$|^apps$|^settings$|^eclipse$

我希望它搜索 ~/data 和其下方的两个目录并忽略所有点文件和一些其他特定文件夹。(笔记:不,如果您给它嵌套文件夹,它就不会搜索相同的文件夹,这不够智能,~/,~/code所以不要这样做。)

如果您更改了配置文件,则需要重新启动守护进程以重新加载它:

killall unity-filesearch-daemon

安装

我将其打包,以便您可以从我的 ppa 下载它。

sudo add-apt-repository ppa:pydave/unity-lenses
sudo apt-get update
sudo apt-get install unity-place-filesearch

然后你需要重置 Unity 才会注意到镜头:

setsid unity

实验性功能

如果您给它一个路径,它通常会将该路径显示为结果之一(这样您就可以像在 gnome-do 中一样打开文件夹)。

我仍在尝试使其正常工作的功能之一是能够键入路径、空格,然后键入搜索词以在路径中进行搜索。大多数情况下它可以正常工作,但有时它会找不到任何内容(可能是因为搜索时间太长)。

答案2

到目前为止,我发现的最好(但不令人满意)的方法是:

  1. 调用 dash。输入search并按 Enter 启动“搜索文件...”
    • gnome-search-tool我可以通过在 CompizConfig 中添加命令键绑定来简化此步骤。
  2. 输入我的查询。
  3. 选择我想要搜索的文件夹。
  4. 点击“查找”。

但是浏览此界面需要很多选项卡,并且选择文件夹很繁琐,因为我想要的文件夹通常不在我的书签中。

相关内容