我一直弄不明白一个 finder 的操作逻辑,求大佬解惑

2022-08-25 20:44:39 +08:00
 minilei

在 windows 资源管理器里键盘按文件名首字母就能在相应文件上依次循环定位文件或文件夹,但在 finder 上这一操作就很迷,感觉完全没有规律,有没有大佬能讲讲这个操作的罗辑. 比如 b 开头的文件有 4 个,我按一次 b finder 定位到第一个 b 开头的文件,按第二次 b finder 就定位到了第 3 个 b 开头的文件,跳过了第 2 个,然后不管再按多少次 b finder 依然是定位到第三个文件不动.

2423 次点击
所在节点    macOS
18 条回复
forelegance
2022-08-25 21:00:16 +08:00
逻辑应该是,你敲一串字符,finder 找到匹配这一串字符的文件项;例如,你敲了“p”,匹配第一个项;你接着敲了‘pp’,则匹配的是文件名包含了“pp”的项,如果没有这个项,则会一直停留在之前匹配的项(即选中状态)。

我一般直接敲整个单词,例如我的 Documents 文件夹下有很多“project#”开头的文件夹,我每次只敲#后面的三个字母,就会匹配到这个项目文件夹,例如"pmp", "scripts"。
wu67
2022-08-25 21:00:54 +08:00
试了一下, 乱七八糟的, 比你描述的更复杂. 怕是根本没经过测试就丢出来了
F798
2022-08-25 21:05:53 +08:00
可以想象有一个搜索框,你可以输入完整单词
5966
2022-08-25 21:11:59 +08:00
题外话,我喜欢 mac 会根据文件大小使用对应的单位显示,Windows 总是以 kb 为单位。
yingbo
2022-08-25 21:18:01 +08:00
一楼正解
bs10081
2022-08-25 21:25:06 +08:00
一樓正解
jheroy
2022-08-26 09:04:49 +08:00
短时间连续输入会匹配整个输入的串, 如果间隔一段时间输入会当成两次搜索.
sillydaddy
2022-08-26 09:34:29 +08:00
我建了一个 test 文件夹,里面新建
d0
d1
d2
d3
d4
这么 5 个文件夹,

我用键盘输入 d ,不论快慢,只会匹配 d0 ,d4 。输入快的时候,会匹配 d4 ,那么意思应该是 dd 会匹配 d4 ?
这与“如果没有这个项,则会一直停留在之前匹配的项”不符合啊。 @forelegance
jheroy
2022-08-26 10:08:59 +08:00
@sillydaddy 匹配的逻辑是优先精确匹配, 如果没有精确匹配的项就按字符最近的匹配, dd 距离 d4 最近, 如果你还有个 d5 那么 dd 就会匹配 d5.
sillydaddy
2022-08-26 11:03:09 +08:00
@jheroy @forelegance

我又试验了一下,在原来基础上又新建了
da
dc
dg
dz
这 4 个文件夹,然后快速输入 dd ,匹配的并不是 dc ,而是 dg 。

这怎么解释原来的 dd 匹配 d4 呢?
sillydaddy
2022-08-26 11:04:17 +08:00
一个输入匹配,逻辑要搞得这么复杂,就是设计的失败。
jheroy
2022-08-26 11:23:11 +08:00
@sillydaddy 最近的的查找方式是当前字母先顺序往后找, 没找到再反向往前找.
sillydaddy
2022-08-26 12:17:59 +08:00
@jheroy
应该是这样。按照这个逻辑,1#楼的说法就不成立了,应该是每次输入都重新匹配,停留不动只是因为当前项就已经是最佳匹配项了。而且我试了也复现不了 1#楼所说的 project#的用法。
minilei
2022-08-26 20:07:03 +08:00
@sillydaddy 完全摸不懂这个逻辑,真实情况比我描述的更复杂,比如我按 D 前两次可能会在 D 开头的文件上循环选择,多按几次就停着不动了, 有时候按 X 他又选择了 Y 开头的文件,明明文件夹里有 X 开头的文件.
xy90321
2022-08-27 01:06:03 +08:00
Windows 资源管理器也不是单纯首字母,连续输入的话是匹配完整词组的
macOS 麻烦的点可能在于不一定是从文件名开头开始匹配

Windows:keywords%
macOS:%keywords%

的感觉(因为没有官方文档或者开源代码做支撑,纯黑盒经验描述)
sillydaddy
2022-08-27 16:10:53 +08:00
@minilei
我试了下,按 x 选择 y 开头的,可能是如#10 楼和#12 楼所说的情况,比如有 4 个文件夹
xabc
xdef
yabc
ydef

那么连续输入 xe ,或者 xf 等等,它会匹配 yabc 这个文件夹,因为「按当前字母先顺序往后找, 没找到再反向往前找」,xe 按照字符串排序往后找,最接近的是 yabc ,而不是 xdef ,因为 xd 在 xe 的前面。不光是输入 xe 如此,即使输入 xdf ,也是一样匹配 yabc 。
0aemon
225 天前
3 楼和 12 楼说的应该是对的

随便举个例子 cca 、ccb 、ccg 输入 ccc 、ccd 、cce 、ccf 均会匹配 ccg
字母匹配不到就往后匹配,没有就按照前一个字母往后匹配, 匹配到一个结果就终止,
都没有定位最后一个文件( 26 英文字母顺序)

~8 楼是因为你只有这 5 个文件夹 , 没有匹配结果就会定位最后一个文件 。
dd 匹配不到 , 按照 de 匹配,匹配到一个结果就终止,没有就 df ,以此类推,
如果一个结果没有,就直接按照 e (第一个 d 的下一个)匹配然后终止
e 没有 ,定位最后一个文件。

~10 楼是因为 g 字母在 d 后面


~16 楼 xe e 找不到 ,用 x 找 ,x 后面是 y ,找到一个终止
xdf f 找不到 用 d 找,d 找不到,用 x 找,后面是 y ,找到一个结果终止,

@sillydaddy
sillydaddy
225 天前
@0aemon 你说的符合我测试的例子😁
应该就是按名称排序好,对于输入字符串,输出所有名称中,大于等于它且最靠近它的那个。但 8 楼是个例外情形。
但改成输出小于等于且最靠近的那个,更符合直觉,并且可以解决 8 楼所涉及的例外。

总之是不太友好,没有 Windows 好用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/875428

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX