V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
minilei
V2EX  ›  macOS

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

  •  1
     
  •   minilei · 2022-08-25 20:44:39 +08:00 · 2231 次点击
    这是一个创建于 658 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    Windows:keywords%
    macOS:%keywords%

    的感觉(因为没有官方文档或者开源代码做支撑,纯黑盒经验描述)
    sillydaddy
        16
    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
        17
    0aemon  
       57 天前
    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
        18
    sillydaddy  
       57 天前 via Android
    @0aemon 你说的符合我测试的例子😁
    应该就是按名称排序好,对于输入字符串,输出所有名称中,大于等于它且最靠近它的那个。但 8 楼是个例外情形。
    但改成输出小于等于且最靠近的那个,更符合直觉,并且可以解决 8 楼所涉及的例外。

    总之是不太友好,没有 Windows 好用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4678 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:55 · PVG 11:55 · LAX 20:55 · JFK 23:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.