如何在 Unity 中搜索文件?

idb*_*rii 5 unity files search find unity-dash

我正在尝试使用破折号而不是 gnome-do,但我找不到文件。“查找文件”仅返回“热门结果”。

在 gnome-do 中,我能够将一些常用目录设置为索引。例如,我有一个名为“ToRead”的文件夹,里面装满了 pdf 文件。我可以搜索pdf. 然后我可以在 ToRead 中浏览 pdf 文件并在不使用鼠标的情况下打开文件。理想情况下,我想在 Dash/Places 界面中复制此功能。这可能吗?

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


说明:

  • “文件和文件夹”不符合我的要求。它只显示我最近使用过的文件。
  • 我希望能够在不使用鼠标的情况下完成此操作,也无需按 Tab 数百次。
  • 我不需要将我的搜索编入索引。文件系统抓取(但仅限于我设置的目录)很好。

idb*_*rii 5

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

Unity FileSearch 镜头

您可以在 Unity Launcher 中访问镜头。你可以在我搜索“讲座”的地方看到它。

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

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

您可以通过ShowGlobal=true/usr/share/unity/places/filesearch.place. 不幸的是,Unity 目前没有办法自定义 Dash 中的镜头。

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

破折号显示“图标”的一些文件搜索结果

配置

当 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$
Run Code Online (Sandbox Code Playgroud)

我希望它搜索 ~/data 和它下面的两个目录,并忽略所有点文件和其他一些特定文件夹。(注意:不,如果你给它嵌套的文件夹~/,~/code,那么不搜索相同的文件夹是不够聪明的,所以不要这样做。)

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

killall unity-filesearch-daemon
Run Code Online (Sandbox Code Playgroud)

安装

我打包了它,所以你可以从我的 ppa 下载它。

sudo add-apt-repository ppa:pydave/unity-lenses
sudo apt-get update
sudo apt-get install unity-place-filesearch
Run Code Online (Sandbox Code Playgroud)

那么你需要在镜头被注意到之前重置unity:

setsid unity
Run Code Online (Sandbox Code Playgroud)

实验功能

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

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