Listary 6 的一些功能建议

一些功能建议:

s1. Command 和 Menu 命令对 %file%%path%%filename% 等内置变量的支持。[V5]

这是 V5 的功能。现在只解析了 %path%,但是这是因为有同名的 OS 环境变量。在重新支持这些内置变量的同时,可以考虑修改变量名或扩展符以避免与 OS 环境变量冲突。

Listary 的一大功能是「对指定文件或文件夹进行预定义操作」,V5 提供了 action、command、menu 命令三种途径来实现。action 的对象是搜索结果,后两者的对象是是相同的,即在 Explorer 这样的文件管理软件中选中的项目。这两种选择操作对象的方式是互相不可替代的。

s2. 添加对同时选中多个项目的情况的内置变量支持

这建立在上一个建议功能的基础上。一般以空格分隔多个文件名或完整路径,以便应用于命令行参数。

s3. 在 Menu 项目的名称中对字符 “&” 进行特殊解析 [V5]

前缀 “&” 的字符,以下划线标识。如果被标识的是西文字符,按下其对应的按键则选中该项目。如果按键对应的项目唯一,则直接打开或启动该项目。

这是 V5 的功能。

s4. 搜索含空格的字符串。

用常见的双引号方案即可。符号 \ 应当可以添加在末尾(双引号内外皆可)以表示父目录。

s5. 增加 {query:1}{query:2} 等变量

我注意到 V6 的一个变化。在 V5 中,当用户输入以空格分隔的多个参数,{query} 只接收第一个参数。在 V6 中,{query} 接收用户输入的全部参数字符串,类似于批处理参数 %*。添加形如 {query:N} 的变量,接收第 N 个参数 ,类似于批处理参数 %N ,可更好支持多参数的命令。参数解析又涉及到处理含空格的参数,引入引号又涉及如何对引号转义。

s6. 即时显示 {query} 接收的字符串 [V5]

这是 V5 的功能。V6 中的 Web Search 是即时解析替换 {query} 的,Commands 却没有。

如果添加了前面建议增加的 {query:N} 变量,也建议即时解析替换。

s7. 对 command 可选「仅在启动器模式显示」和「仅在文件搜索模式显示」 [V5]

「仅在启动器模式显示」是 V5 的功能,可避免在资源管理器中导航时因操作过快错误地运行命令。「仅在文件搜索模式显示」是因为一些命令根本不会在启动器模式下使用,例如使用了内置变量 %file%%filename% 且期望它们不为空的命令(如果 V6 重新支持这些变量)。

s8. 从文件搜索模式切换到启动器模式后,保持已输入的内容 [V5]

V5 的功能。V6 会清空搜索框。


Bugs

b1. 在 Parameter 设置项中填写了 {query} 的 command,在调用时,如果参数留空,如果是 V5,不会运行该命令,V6 有了改进,仍会运行命令,但是须在关键字后输入空格,否则回车没有反应。

b2. 在 Parameter 设置项中填写了 {current_folder} 的 command,在启动器模式下无法调用,回车没有反应。在 V5 中可以运行命令,变量解析为空字符串。

b3. 在 Url 设置项中填写了 {query} 的非预置 web search,在调用时,如果参数留空,即输入 keyword 回车,则 {query} 会被解析为字符串 {query},就如同输入了 keyword {query} 回车,期望的行为应是解析为空字符串。此时还伴随另一个 bug——浏览器窗口会失焦。我的默认浏览器是 Firefox,没有测试过其他浏览器。

b4. 在激活 Options 窗口时,按快捷键显示 popup menu,会闪一下就消失。试过的快捷键有 Win + Alt + MWin + .

2 Likes

感谢建议!因内容及回复都较长,搬到个新帖里来了。

s1. 都会有。5中已经开始舍弃 %% 改用 {} 了。同时6里正在逐渐整合 Action、Command、Menu 命令三者的概念:

  • Command 跟普通意义上的命令差别不大。Action 是作用于指定文件的一类特殊 command(以后含有 %file% 等参数的都是 action)。Menu 是 command 和 action 的鼠标入口。
  • 目前已完成 menu 跟 command 的整合。Menu 命令不再独立存在,现在 menu 是直接调用那些有 keyword 的 command,添加 menu 时可引用已有 command。
  • Menu 跟 action 的整合会稍后进行,主要因为选中文件后再激活菜单有诸多不便(除了中键外其他方式易误操作)。
  • 会支持在资源管理器中选中的文件上直接激活 Actions。

s2. 会等到核心部分(文件搜索、Actions 等)有完善的文件多选概念后再考虑。

s3. 已添加,会在下个更新放出。因跟随 Windows 10 的规范有一些调整:

s7. “仅在启动器模式显示”是5中的功能,在6中搜索算法调整后几乎用不上。即便极个别情况下在资源管理器中出现命令干扰搜索结果的情况也可以通过输入个空格快速解决。

缺失必要运行变量的命令将不会再出现在搜索结果中, 所以“ 仅在文件搜索模式显示”应该也用不上。

s4. s5. s6. s8. 会有。


b1. 期望的结果是怎样的?目前计划是参数中如有 {query} 则要求强制输入,另外增设一个 {query?},允许不输入,会用空字符串替换。

b2. 同上,{current_folder?}

b3. 同上, {query?}。绝大部分用到 {query} 的都是进行搜索,默认传空串意义不大。

b4. 会修(影响较小,低优先级)。

解决方案看上去都不错。有一个疑问:

s3. 意思是访问键 x 的内部表示不再使用 &x 而是使用 _x 吗?旧系统仍然可以使用 &x 吗?是否计划在配置导入或同步功能中进行自动转换?还是说用户仍然填写 &x,由 Listary 进行内部转换?

是,都需要改成 _x,旧系统也是。导入时的自动转换有时间会做下,不过已经导入完的只能手动改了。

明白了。

s9. V5 Action 的 Copy to Curren Folder、Move to Current Folder 能不能加回来?我挺常用。

s10. Menu 的 folder 不再支持快捷键,不知道是否由于整合没有完成。以及 Action 没有了 Copy Folder Path to Clipboard。Menu 里有这项,只是默认显示而在设置中不可见,但没有 Copy Path to Clipboard。Commands 则两者皆无。要说以前常用的而现在没有实现的,就是对资源管理器中选中的文件按快捷键或关键字复制路径。

s11. 注意到 Actions 中的 Send to 和 Open with 没有了,不过 V5 Action 中资源管理器上下文菜单的「发送到」和「打开方式」是空的,这两项大概是为此而存在。V6 似乎解决了这个问题,所以没有多少存在意义了。不知道 Copy 和 Cut 在 V5 和 V6 中的存在是不是为了可以定义快捷键和关键字?如果可以为资源管理器上下文菜单中的固定项目定义快捷键和关键字,也不错啊。

s12. 在资源管理器中有一些文件,右键点击后上下文菜单中不显示「打开方式」,此时 V5 Action 的 Open with 却可用。V6 则同样不显示「打开方式」,且去掉了 V5 中的 Open with,希望能像 V5 一样,有个解决办法。

s13. 在资源管理器中按住 Shift 点击右键,菜单中会多出一些项目,能否在 Action 中显示?

s14. 对搜索结果似乎只有打开才会影响排序权重,其他 Action 也影响权重比较合理。

s9. 暂时不会添加,整体来看使用频率过低,并且新用户对这两个的功能很困扰。可以给复制剪切动作设置好快捷键,搜完结果后直接 Ctrl + C/X,Ctrl + V 也差不多。

s10. 会有,对文件夹设置文件名不包含的关键字及快捷键。会等快捷键功能理顺后一起做。

s11. “为资源管理器上下文菜单中的固定项目定义快捷键和关键字”:很早之前就有类似想法,用快捷键或关键字直接调用右键菜单项。主要障碍是多语言问题,不同语言系统上显示的不一样。同时没有一个固定的类似 id 的东西可供读取判断。

s12. 这个应用场景太少,需要同时满足系统不显示 Open with,然后还需要用某个特定程序打开。真有需要建议直接把这个特定程序添加为自定义动作。动作以后也会支持依据文件扩展名显示。

s13. 会有。

s14. 其他 Action 例如?

s9. 想了想,这两个功能应该可以通过自定义 Action 利用 cmd 命令实现,条件是能在命令中引用搜索结果的完整路径和当前目录的路径。测试中发现 {current_folder} 尚未支持,好在工作目录默认为当前目录,暂时用 . 还可以。

s14. 几乎所有 Action 吧,包括 Listary 和资源管理器上下文菜单的。比如与默认打开最相似的用特定程序打开,这最好理解。比如复制、复制路径、查看属性…… 除了删除等少数操作,几乎所有操作都反映了用户对这个文件的关心,和将来更可能再次操作它的可能性。

b5. 我的一个自定义 Action 是用 Firefox 打开文件,打开后 Firefox 窗口总是失去焦点。Firefox Developer Edition 也是这样。

是未获得焦点还是先获得然后又丢失?

先获得后丢失。

b6. 资源管理器上下文菜单中的 “Edit with existing Vim - XXX” action 无效

安装 gVim 后,资源管理器上下文菜单会增加以下项目:

  • Edit with Vim
  • Edit with existing Vim - file1
  • Edit with existing Vim - file2

从第二项起,仅当已经有 Vim 窗口存在时才会存在。所有项目在资源管理器中都正常工作,但是在 Listary 5 和 Listary 6 的 Action 中只有第一项正常,也就是说只能在新窗口中打开文件,而不能在既有的 Vim 窗口中打开。隐约记得 Listary 5 曾经是或者偶尔是正常的,至少最近总是不行了。

收到,会测试下。

b7. 在资源管理器中搜索目录后无法跳转。目前发现过两次,出现这种情况的窗口是一直不能跳转,而不是有时能有时不能。有一次,出现问题的资源管理器窗口是在另一个程序中打开的,当时用同样方式再打开一个窗口,却可以正常跳转。

一直在观察中,重现困难比较难修复。

请问一下诸如{query?}这类的参数您准备什么时候添加呢

等版本稍微稳定后就有。

建议

s15. File Search - Priorities 的项目应可编辑。这样便于在已有项目上进行修改调整,目前不能编辑,也不能复制文本,要修改只能从头写,对环境变量和正则表达式这种只能手敲的内容比较不便。

咨询

c1. 正则表达式用的是 PCRE 吗?还是 .Net ?添加一个语法参考链接比较好。

c2. Priorities 中的项目如果有交集,Listary 如何处理交集的优先级?我这里有一个用例没有达到设想的效果——将 C:\Windows\System32 目录下(不包括子目录)的扩展名为 exemsccpl 的文件排到搜索结果前面:

问题出在哪儿呢?

更新:观察了一下预置的 ^\.^~ 这两项,似乎暗示了 Regex rule 只匹配文件名而不是完整路径。那么这样就不可能实现我这种需求了。只有等待之前说会添加的 Listary 5 中既有的定制程序搜索目录的功能吧,这里也有个顺带的建议:

s16. 定制程序搜索目录,对每个目录可选择单独设置搜索的扩展名或继承全局设定。

1 Like

s17. 刚刚尝试用 Filters 来暂时实现搜索 System32 下的特定扩展名文件,发现目录似乎不支持环境变量,这个支持可以添加吗?

感谢反馈!

s15. 已加入计划,以后会支持。

c1. 是 .NET 的,对于文件名能用到的情况跟其他正则格式基本没有不同。

c2. 是的,目前仅支持文件名。

s16. 暂无计划,一般来说把扩展名都加到全局里够用了。

s17. 已加入计划。